在深入研究在Angular中进行身份验证/授权的选项时,我发现了两种可能性:
第一个也许主要使用的选项是在resolve
/ angular.config
函数中创建$routeProvider.when(...)
函数。
例如。 http://www.codeproject.com/Tips/811782/AngularJS-Security-Authorization-on-Angular-Routes
第二种可能性是检查angular.run
/ $rootScope.$on('$routeChangeStart', ...)
内的用户权限。
E.g http://arthur.gonigberg.com/2013/06/29/angularjs-role-based-auth/
我发现了两个例子,但没有解释为什么我应该使用第一个或第二个选项。我的想法是,resolve
可以在调用$routeChangeStart
之前取消路由请求。无论如何,有了解决方案,我必须对每条路由实施检查(例如,使用UI-Router)。 $routeChangeStart
对我来说似乎更像是一种中间件方法,因此是更好的选择。
有人可以告诉其他/更多原因吗?