想了解下各位是怎么使用 refresh token 的呢。 每次请求的请求头带上它; 还是前端配置定时器,在过期前刷新; 还是验证失败了再用 refresh token 刷新 access token 呢
1
ZZ74 64 天前
还是验证失败了再用 refresh token 刷新 access token 呢
|
2
2han9wen71an 64 天前
我们小程序定时刷新,web 端过期后再刷新
|
![]() |
3
Blake2Wang 64 天前 ![]() 后端对于 token 过期返回约定的状态码,前端封装 request 请求工具类,对于 token 过期状态码,做一个 token 无感刷新,具体操作:用 refresh 刷新 token ,把 token 过期的这个请求和刷新过程中的新的请求放到待请求队列中,token 刷新完,把队列中的请求用新 token 去请求
|
![]() |
4
ghjh OP |
5
LuckyLauncher 64 天前
@ghjh #4 刷新完 token 后前端再发一次保存接口
|
6
fredweili 64 天前
refresh 当然不用用户介入,监测到 access 过期了就去 server 拿一个新的,多几个请求稍微慢一点
|
7
2han9wen71an 64 天前
@ghjh 当 access token 过期后,用户执行操作,我们会弹出一个窗口进行自动续期,续期通过后弹窗自动关闭,然后再次提交一下接口
|
![]() |
8
ghjh OP @Blake2Wang 这种对异常工况的处理会不会变得复杂呢。
比如 refresh 失效,网络原因刷新请求没有过来等等 |
![]() |
9
ghjh OP @2han9wen71an #7 同时有多个请求的 token 过期,也会用 refresh 多次刷新么。
|
![]() |
10
Blake2Wang 64 天前
@ghjh 二次封装 request ,这些逻辑写在通用的请求和响应拦截器中,我的博客很久没维护了,你直接搜索一下 token 无感刷新,看一下代码就懂了,随便找了一篇给你 https://blog.csdn.net/weixin_57909742/article/details/134310007
|
11
iamobj 64 天前
就用 3 楼的方法,如果懒得自己手撸维护请求队列,前端好像有个 alova 请求库,内置了无感刷新 token 的策略
|
![]() |
12
ghjh OP |
13
ke1e 64 天前
过期了再重新请求 acess token ,不用维护 refresh token
|
![]() |
14
stephenxiaxy 64 天前
refresh_token 是不应该由三方前端持有的,而是三方后端持有的吧
|