refresh token的最佳实践?

假设,我的access token到期之后,我点击了一个删除按钮,这个按钮执行2个api
1.delete api
2.get api (刷新页面)
那么我的axios response拦截器是否应该记录 这个两个api请求,先根据refresh token拿到最新的access token,然后再从新发送这两个请求.

我在想这样繁琐的处理有必要吗? 另外即使我再次发送了这两个请求, 我也不能从新dispatch一个action去更新页面,所以即使这两个请求成功了,页面也不会更新.如果我想要更新页面,要如何做呢???

感谢大佬

阅读 3.7k
4 个回答

在请求拦截器里做判断,在accessToken过期前的几十分钟或者一个小时的时候去用refreshToken请求新的accessToken
如果已经过期了那就先请求到新的accessToken然后再去发请求

没必要。

  1. 后端直接校验 token,成功就返回结果,失败就返回 401。
  2. 前端 401 之后跳转到登陆页,否则直接刷新列表。

可以在 access_token 到期前客户端手动刷新 token

要说最佳实践的话,那肯定是尽量让用户无感,也就是像你说的那样,遇到 Token 过期后,调用接口刷新 Token ,然后再重新发起之前的请求。

如果有多个接口几乎同时发起,那你应该根据接口的返回(而不是请求),比如 401,然后把这些请求失败的接口重新进行发起。


漏了个最朴实的方式,前端保存一下 Token 的过期时间,在发请求到时候判断一下,过期时间后发送的请求的时候,先刷新 Token 就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏