angemeldet ist, ich habe Routen wie folgt aus:Angular 2 Umleitung, wenn der Benutzer in
const routes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] },
];
und AuthGuard
:
export class AuthGuard implements CanActivate, CanActivateChild {
constructor(private router: Router,
private authService: AuthService) { }
canActivate() {
if (this.authService.isLoggedIn()) {
return true;
}
this.router.navigate(['login']);
return false;
}
}
Wenn der Benutzer besucht die Website, wird er auf die Login-Seite umgeleitet. Das Gleiche passiert, wenn der Benutzer versucht, auf die Route /dashboard
ohne Authentifizierung zuzugreifen. Wie kann ich den Benutzer auf /dashboard
umleiten, wenn er eingeloggt ist? Zum Beispiel, wenn ich myapp.com
besuche und ich eingeloggt bin, möchte ich zu myapp.com/dashboard
umgeleitet werden.
tun dies auf 'canActivate' wird nicht funktionieren? 'if (this.authService.isLoggedIn()) {this.router.navigate (['dashboard']); Rückkehr wahr; } '. – developer033
@ developer033, ich habe es versucht, es funktioniert nicht! Es wird eine Endlosschleife geben. –
Hmm, also müssen Sie es nur auf Ihrer 'LoginComponent' (auf' ngOnInit') überprüfen .. – developer033