Я реализовал защиту перед входом и после входа в систему, чтобы некоторые пользователи не могли получить доступ ко всем страницам.Мой вопрос: когда пользователь не вошел в систему и когда он пытается зайти на неавторизованную страницу, такую как «localhost: 4200 / limited_page», он должен быть перенаправлен на страницу входа «localhost: 4200 / login».Но я не могу перенаправить на страницу входа.Теперь он перенаправляет только на localhost: только 4200.
Где мне исправить код?
before-login.guard
export class BeforeLoginGuard implements CanActivate {
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return !this._tokenService.loggedIn();
}
constructor(private _tokenService: TokenService) { }
}
after-login.guard
export class AfterLoginGuard implements CanActivate {
constructor(private _tokenService: TokenService) { }
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return this._tokenService.loggedIn();
}
}
token.service
export class TokenService {
payload(token) {
const payload = token.split('.')[1];
//decoding
if (typeof (payload) !== 'undefined')
return JSON.parse(atob(payload));
return false;
}
loggedIn() {
// return this.isValid();
const token = this.getToken();
console.log("token", token);
if (token) {
const payload = this.payload(token);
if (payload) {
return Object.values(this.iss).indexOf(payload.iss) > -1 ? true : false;
}
}
return false;
}
}