我正在使用auth0 / angular2-jwt pakage处理Angular6应用程序中基于JWT令牌的身份验证。如果我们提供了有效的令牌 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')));
}
我尝试了以上两种方法,它总是返回 false
谢谢。
答案 0 :(得分:0)
您应该使用{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);
}
答案 1 :(得分:-1)
使用tokenNotExpired('id_token')
下面的链接可能会有所帮助。祝你好运。
https://github.com/auth0/angular2-jwt/issues/334#issuecomment-293968046