好吧,我来自ngRoute
背景,我刚开始学习uiRouter
。
我曾经为登录(login.html)写了两个不同的角度应用程序,一个用于主应用程序(index.html)。在后端,我只是检查用户是否经过身份验证,然后将其重定向到index.html,否则重定向到login.html。
现在我想将登录封装到主应用程序中。我有很多州要求用户登录。在很多州,一些部分,如页眉和页脚是固定的。我正在寻找一个具体的解决方案,以解决这些问题:
resolve
属性。/some-prefix-for-authed-paths/...
类似。/error
之类的东西,因为它实际上根本没有意义!另外,我不希望在浏览器历史记录中进行状态推送。答案 0 :(得分:0)
您可以尝试实现捕获所有非2xx请求的httpInterceptor并重定向到某种错误/登录页面。
另外,要检查身份验证,可以通过向状态添加访问级别来使用uiRouter onStateChange事件
.state('someState', {
url: '/someUrl',
isPrivate: true
})
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
event.preventDefault();
// Check if state is private
if(toState.isPrivate) {
// Do something
}
});
请注意!这只是一些伪代码