【发布时间】:2019-09-09 07:38:39
【问题描述】:
所以我使用 angular 7 和 @auth0/angular-jwt 包。我在某些路线上有一个身份验证守卫,我检查 jwt 令牌是否已过期。不管我做什么,这个方法总是说令牌已过期。我知道令牌是有效的,因为它们是邮递员。有人对这个 isTokenExpired 方法有经验吗?
import { Injectable } from '@angular/core';
import { JwtHelperService } from '@auth0/angular-jwt';
@Injectable({ providedIn: 'root' })
export class AuthService {
private jwtHelper = new JwtHelperService()
// ...
public isAuthenticated(): boolean {
const token = localStorage.getItem('token');
// Check whether the token is expired and return
// true or false
return !this.jwtHelper.isTokenExpired(token);
}
}
【问题讨论】:
-
lol 有一个包 :o :D 这只是一些 base64 编码,编写脚本可能比搜索包更快
-
你用什么来创建令牌?
-
你检查过本地存储中是否真的有一个令牌?
-
@matt 你能在后端显示你设置为 exp 的内容吗?如果您使用 'expiresIn',请记住它必须作为对象传递,例如 { expiresIn : '1h' }。
-
@BrandonMiller 啊,就是这样!愚蠢的我以为它默认设置了一些过期时间......非常感谢!