何时使用刷新令牌更新JWT访问令牌



我制作了一个带有外部认证服务器的Quasar App。登录后,我收到访问和刷新令牌。刷新令牌不会过期,直到我按下注销。访问令牌在10分钟后过期。所以,因为我需要访问令牌来获取数据,这是可能的登录后的下一个10分钟。之后,我必须调用包含刷新令牌的API来获得新的访问令牌。我的问题是,我怎么能确保始终有一个有效的访问令牌没有再次登录?

作为一个用户,我希望登录并有权访问一切,直到我注销。例如,如果我的应用程序只是躺了15分钟然后我想接收数据,这是不可能的。

不知何故,我想调用刷新令牌api无声,但何时以及如何?以一定的时间间隔刷新令牌、更改页面或每次想要接收数据时刷新令牌是否常见?我还没有找到一个有效的解决办法。

在一个引导文件中,我添加了刷新令牌方法。因此,每次启动应用程序时,令牌都会刷新。例如,对于iPhone用户来说,应用程序不会完全关闭,所以init-method将不会被触发,直到我手动完全关闭应用程序。

我想在每个API调用之前刷新令牌太多了。是吗?

我的问题是,我如何确保始终有一个有效的访问不再次登录令牌?

您可以在Quasar Axios引导文件中使用Axios响应拦截器来检查响应是否由于过期的访问令牌而失败(基于状态码例如401)。

axios.interceptors.response.use(
(response) => {
return res;
},
async(error) => {
if (error.response) {
if (error.response.status === 401) {
// Use refresh token here to get new JWT token;
// return a request
return axios_instance(config);
}
}
return Promise.reject(error);
}
);

希望这对你有帮助!

最新更新