在 Angular 8 中,有哪些不同的方法可以检查 JWT 令牌是否已过期。到期时间为1小时。工作代码/示例将不胜感激。
Mic*_*l D 17
选项 1 - 手动
令牌到期时间以UTC 时间格式编码在令牌中。因此,可以根据 UTC 中的当前时间手动获取和检查它。尝试以下
private tokenExpired(token: string) {
const expiry = (JSON.parse(atob(token.split('.')[1]))).exp;
return (Math.floor((new Date).getTime() / 1000)) >= expiry;
}
ngOnInit() {
if (this.tokenExpired(token)) {
// token expired
} else {
// token valid
}
}
Run Code Online (Sandbox Code Playgroud)
选项 2 - 使用 JwtHelperService
您可以使用JwtHelperService'sisTokenExpired()方法检查令牌是否已过期。
import {JwtHelperService} from '@auth0/angular-jwt';
.
.
constructor(private jwtHelper: JwtHelperService) { }
ngOnInit() {
if (this.jwtHelper.isTokenExpired(token)) {
// token expired
} else {
// token valid
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 Angular-JWT 包获取令牌到期日期
getTokenExpirationDate(token: string): Date {
const decodedToken = helper.decodeToken(token);
if (decodedToken.exp === undefined) { return null; }
const date = new Date(0);
date.setUTCSeconds(decodedToken.exp);
return date;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16547 次 |
| 最近记录: |