在构建Angular应用程序时,您必须登录才能查看任何页面,哪里是进行身份验证检查的最佳位置?我总是在$ stateChangeStart下检查app.run,但我看到有些人使用UI路由器并决定强制检查。哪个是理想的位置,为什么?为什么?
答案 0 :(得分:1)
我使用了你建议的一切。我喜欢直接从文档中收听$stateChangeStart
这样的事件:
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){ ... })
然后,您可以在决定要执行的操作之前使用event.preventDefault();
和解决任何http调用。
拦截器是另一种选择 - 只是谷歌“Angularjs拦截器”,我相信你会找到一个很好的例子。然而,虽然我只在限制时间内使用Interceptors,但我发现很难克服未经身份验证的用户尝试访问受保护页面时产生的简短页面瞥见。