AngularJs - 跳过登录页面,如果已经登录
问题描述:
我已经为我的应用程序实现了一个身份验证系统。我使用$routeChangeStart
(在运行中)检查用户是否已登录,如果没有,则将其重定向到登录。这工作正常。但是,我可以通过url访问登录页面,如果他已经登录,我想将用户发送到仪表板。有什么方法可以做到这一点?AngularJs - 跳过登录页面,如果已经登录
答
尝试
$rootScope.$on('$locationChangeStart', function(event, newUrl, oldUrl) {});
答
家伙试试这个优雅的解决方案:
.run(function ($rootScope, $location, authService) {
$rootScope.$on('$stateChangeStart', function (ev, to, toParams, from, fromParams) {
if (to.requireAuth && !authService.isAuthed()) {
$location.path("/login");
}
else if (to.name == 'login' && authService.isAuthed()) {
ev.preventDefault();
$location.path("/dashboard");
}
});
})
- 如果用户没有登录和登录,需要将其重定向到 登录。
- 如果用户试图登录并且他已经登录, 阻止他这样做。
- 将每个路径标记为“requireAuth”,并且它将工作。
- 把你的代码在app.js
检查,如果用户已经登录了$ routeChangeStart内,如有必要 – originof 2014-09-24 08:33:30
我已经使用重定向吧!但是,如何检查我是否正在加载登录页面? – 2014-09-24 08:34:46
好的,$ locationChangeStart的作品,谢谢!但是,如果这是做我正在尝试的标准方式? – 2014-09-24 08:49:42