angular - 如果我们有效的令牌,Angular6 auth0/angular2-jwt isTokenExpired 函数总是返回 false
问题描述
我正在使用 auth0/angular2-jwt 包来处理 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
提前致谢。
解决方案
您应该使用 { 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);
}
推荐阅读
- python - 如何将布尔列从宽表重塑为长表
- laravel - 雄辩的范围 - 所有项目不是其他表中的 FK
- vuejs2 - 在 element-ui datepicker 中禁用每周一
- r - 列出R中data.frame中缺失数据的名称和行号?
- windows-10 - 如何在电子应用程序的标题中添加空格?
- python - 为什么通过 pytest 加载驱动程序会导致 SIGABRT?
- excel - 批量删除不符合条件的行
- python - 结合正则表达式读取Python中的文本
- java - 在 Equinox OSGi 包缓存中提取的类文件?
- sql-server - 如何使用存储过程将导入空白 XML 标记导入表的数字列