Używam JWT do uwierzytelniania użytkowników. Część tras w mojej aplikacji angular2 jest chroniona przez CanActivate Guard, która przekieruje Cię na stronę logowania, jeśli użytkownik nie jest zalogowany. Teraz wdrażam przycisk wylogowania i chcę przekierować na stronę logowania. Chcę przekierować tylko wtedy, gdy obecna trasa nie powinna być widoczna dla niezalogowanych użytkowników (np. Strona konta). Jeśli użytkownik jest na przykład na stronie głównej, nie chcę przekierowywać do strony logowania.Angular2: wyzwalanie bieżących osłon trasy - operacja wylogowywania uchwytów
Byłoby idealnie, gdybym tylko mógł sprawdzić, czy obecna trasa ma osłonę i uruchomić strażnik, jeśli istnieje. Można to zrobić?
Strażnik:
public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.loginService.getCurrentUserName()) {
// logged in so return true
return true;
}
// not logged in so redirect to login page with the return url
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});
return false;
}