Функция Angular6 auth0/angular2-jwt isTokenExpired всегда возвращает false, если мы допустим токен

Я использую пакет auth0/angular2-jwt для обработки аутентификации на основе токенов JWT в приложении Angular6. если мы дали действительный токен, функция isTokenExpired всегда возвращает false

Ниже код, который я пробовал:

   localStorage.setItem('id_token', response['token']);
   const helper = new JwtHelperService();
   helper.isTokenExpired(localStorage.getItem('id_token')

А также

constructor(
        private http: Http,
        private helper: JwtHelperService
    ) {
    }

public handleResponse(response: Response){
    localStorage.setItem('id_token', response['token']);  
 console.log(this.helper.isTokenExpired(localStorage.getItem('id_token')));

}

я пробовал выше двух методов его всегда возвращать ложь

Заранее спасибо.

2 ответа

Вы должны использовать { tokenNotExpired } 'angular2-jwt'; Вам понадобится следующая реализация:

Внутри вашего app.module.ts

import { tokenNotExpired } from 'angular2-jwt';
. 
.
.
 @NgModule({

      providers: [
       .
       .
       { provide: 'tokenNotExpired', useValue: tokenNotExpired }, 
      ]

 })

и внутри вашего сервиса, где вам нужно проверить, истек ли токер или нет:

constructor( @Inject('tokenNotExpired') private tokenNotExpired)

isTokenExpired(idToken){
    return this.tokenNotExpired(idToken);
}

Использовать tokenNotExpired('id_token')

Ссылка ниже может помочь. Удачи.

https://github.com/auth0/angular2-jwt/issues/334

Другие вопросы по тегам