【发布时间】:2016-08-12 10:35:06
【问题描述】:
我在main.ts 文件中定义了一些routes:
const routes: RouterConfig = [
{ path: '', component: HomeComponent },
{ path: '', redirectTo: 'home', terminal: true },
{ path: 'dashboard', component: DashboardComponent, canActivate: [LoggedInGuard] },
{ path: 'login', component: LoginComponent },
{ path: 'about', component: AboutComponent }
];
成功登录后,我希望经过身份验证的用户能够使用特定路由(例如dashboard)。没有登录他们无法访问dashboard,但他们可以访问about,home,login
我已经设法限制用户在没有登录的情况下遍历dashboard,使用CanActivate。
canActivate(): boolean {
if (this.authService.isLoggedIn()) {
return true;
}
this.router.navigateByUrl('/login');
return false;
}
但是在成功登录后使用这些路由和CanActivate 方法,用户还可以转到login、home 等路由。我怎样才能防止这种情况?
注意我正在使用 angular2 RC4。
【问题讨论】:
-
为登录和主页创建另一个 CanActivate 以阻止登录用户访问。