Я довольно новичок в angular, и я пытаюсь проверить свой токен аутентификации, используя angular-jwt на Angular 6. Цель проверки токена состоит в том, чтобы разрешить разные кнопки, когда пользователь регистрируется и показывает другой наборкнопок, когда они выходят из системы.
Это мой authService.
import { JwtHelperService } from '@auth0/angular-jwt';
constructor(private http:HttpClient, public jwtHelper:JwtHelperService)
{}
loggedIn()
{
console.log(this.jwtHelper.isTokenExpired(this.authtoken));
}
И это немного моего HTML-кода
<a *ngIf="!authService.loggedIn()" [routerLink]="['/login']"><button class.....
<a *ngIf="!authService.loggedIn()" [routerLink]="['/register']"><button class.....
<a *ngIf="authService.loggedIn()" [routerLink]="['/profile']"><button class....
<a *ngIf="authService.loggedIn()" [routerLink]="['/profile']"><button class.....
Теперь моя проблема до того, как явойти в систему, она правильно входит в консоль как true, но после того, как я войду в систему и зайду на страницу профиля, кнопки не изменятся, потому что она все еще записывает true и затем снова записывает false.
Перед входом в систему:
После входа в систему:
Я думаю, это связано с использованием функции получения токена в модуле приложения, но я неуверен, как еще это реализовать.
Мой компонент модуля приложения:
....
imports: [BrowserModule,
[JwtModule.forRoot({
config: {tokenGetter:tokenGetter,whitelistedDomains['localhost:3000']}
})]
providers: [AuthService,JwtHelperService]
})
export function tokenGetter() {
return localStorage.getItem('access_token');
}