Функция 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')
Ссылка ниже может помочь. Удачи.