【发布时间】:2019-07-19 04:00:28
【问题描述】:
我正在尝试使用auth-guard 来保护我的路线。
我的问题是用户是否已登录。用户无法进入登录/注册页面,必须将用户重定向到默认页面。
routing.module.ts
const routes: Routes = [
{ path: '', component: LoginComponent },
{ path: 'signup', component: SignupComponent },
{ path: 'list-users', component: ListUsersComponent, canActivate:
[AuthGuardService] }
];
auth.guard.ts
if (!this.authService.isLoggedIn()) {
this.router.navigate(['/']);
console.log('go to login');
return false;
}
console.log('has access');
return true;
我试着让代码看起来像这样,但我得到了一个无限循环。
if (!this.authService.isLoggedIn()) {
this.router.navigate(['/']);
console.log('go to login');
return false;
} else {
console.log('redirect when loggedin to list-users');
this.router.navigate(['list-users']); // infinite loop
return true;
}
【问题讨论】:
-
反对票是怎么回事?
-
您正在将 auth-guard 应用于“list-users”,并且如果用户已登录,您将导航到“list-users”,显然它会导致无限循环,有什么问题没有else部分的auth-guard代码的第一个sn-p应该可以工作。
-
@wolverine 问题是登录用户仍然可以访问登录和注册页面
标签: angular