Angular2: Impedir que usuários autenticados acessem rotas específicas
Eu defini algunsroutes
no meumain.ts
Arquivo:
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 }
];
Após o login bem-sucedido, desejo que meus usuários autenticados possam usar rotas específicas (por exemplo,dashboard
) E sem o login, eles não podem acessardashboard
mas eles podem visitarsobre, casa, login
Eu consegui restringir os usuários que atravessam odashboard
sem login, usandoCanActivate
.
canActivate(): boolean {
if (this.authService.isLoggedIn()) {
return true;
}
this.router.navigateByUrl('/login');
return false;
}
Mas usar essas rotas e oCanActivate
Após o login bem-sucedido, os usuários também podem ir a rotas comologin
, home
. Como posso evitar isso?
N.B. Estou usando angular2 RC4.