【发布时间】:2023-04-01 09:18:01
【问题描述】:
我有一个从 Angular 2 客户端调用的个人 REST API。我目前的认证流程如下:
- 用户使用电子邮件/密码登录
- 服务器验证并将 user_data、access_token(JWT) 和 refresh_token(存储在数据库中的不透明令牌)发送回客户端。
- 客户端在每次请求时发送 access_token。
在我的 API 上,我有一个端点 getAccessToken(String email, String refresh_token),它验证 refresh_token 并发出一个新的 access_token。
我的问题是:我应该使用我的 angular2 应用程序中的 refresh_token 在它过期之前或之后使用什么方法来请求新的 access_token。
我目前正在考虑在每个对 API 的 http 请求之前检查 access_token 是否过期,如下所示:
if (!tokenNotExpired("accessToken")) {
this.classService.getAccessToken().subscribe(
data => {
// store new access_token in localStorage, then make request to get resource.
this.classService.createClass().subscribe(
data => {
//success
}, error => {
//error
})
}, error => {
// Invalid refresh token, redirect to login page.
});
} else {
this.classService.createClass().subscribe(
data => {
//success
}, error => {
//error
});
}
有没有更好的方法来做到这一点?我正在使用 angular2-jwt 进行令牌验证。
【问题讨论】:
标签: javascript angular jwt