作为我的前端 MV* 框架,我只能在 angularjs 和 dojo 之间进行选择。在我看来,一项至关重要的特殊功能是能够进行不显眼且透明的身份验证。angular 在这方面使用 http 拦截器的能力给我留下了深刻的印象。请参阅http://www.espeo.pl/2012/02/26/authentication-in-angularjs-application以获得良好的示例实现/解释。
它允许在等待成功登录时将任何和所有 401 响应排队,然后在登录成功后通过使用广播事件、事件处理和 http 拦截器(加上请求队列)的组合重新传输它们。每个请求的开销似乎很小。
我想比较道场做同样事情的能力,但从我的考试来看,这似乎是不可能的。检查 dojo 文档,似乎这在 dojo 1.4 中使用 ioPipline 可能是可能的,但是不推荐使用这有利于 dojo/request/notify 似乎没有提供低级别的拦截(特别是它收到错误时似乎无法访问请求对象)。也不清楚是否可以从通知功能中修改或替换响应...
谁能给我指出一个使用dojo的请求/通知服务或使用dojo的替代方法完成的明确示例?关键要求是身份验证对受保护的功能/控制器/对象是透明的(它们应该简单地接收最终实现的承诺),身份验证代码能够集中(它不应该需要修改每个对象/事件/等发出请求),并且它应该是安全的(从某种意义上说,身份验证/授权都应该发生在服务器端,并且没有 javascript 操作应该能够绕过该要求)......