V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HexHub
HexHub,一站式SSH、Docker、数据库连接管理工具,支持多种主流数据库、多窗口分屏、智能SQL编辑、极速数据处理、批量命令、云端同步,支持SSH跳板机、命令广播、历史命令、SFTP多端文件互传。
Promoted by xiwh
ghjh
V2EX  ›  编程

refresh token 的使用

  •  
  •   ghjh · 2024-07-05 09:19:10 +08:00 · 2795 次点击
    这是一个创建于 370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想了解下各位是怎么使用 refresh token 的呢。 每次请求的请求头带上它; 还是前端配置定时器,在过期前刷新; 还是验证失败了再用 refresh token 刷新 access token 呢

    15 条回复    2024-09-10 13:56:24 +08:00
    ZZ74
        1
    ZZ74  
       2024-07-05 09:20:02 +08:00
    还是验证失败了再用 refresh token 刷新 access token 呢
    2han9wen71an
        2
    2han9wen71an  
       2024-07-05 09:31:32 +08:00
    我们小程序定时刷新,web 端过期后再刷新
    Blake2Wang
        3
    Blake2Wang  
       2024-07-05 09:40:27 +08:00   ❤️ 2
    后端对于 token 过期返回约定的状态码,前端封装 request 请求工具类,对于 token 过期状态码,做一个 token 无感刷新,具体操作:用 refresh 刷新 token ,把 token 过期的这个请求和刷新过程中的新的请求放到待请求队列中,token 刷新完,把队列中的请求用新 token 去请求
    ghjh
        4
    ghjh  
    OP
       2024-07-05 09:41:28 +08:00
    @ZZ74
    @2han9wen71an

    验证失败再刷新的话,会不会有点影响体验呢。比如用户点击了保存失败了,需要再点一次?
    LuckyLauncher
        5
    LuckyLauncher  
       2024-07-05 09:44:55 +08:00
    @ghjh #4 刷新完 token 后前端再发一次保存接口
    fredweili
        6
    fredweili  
       2024-07-05 09:47:01 +08:00
    refresh 当然不用用户介入,监测到 access 过期了就去 server 拿一个新的,多几个请求稍微慢一点
    2han9wen71an
        7
    2han9wen71an  
       2024-07-05 09:47:39 +08:00
    @ghjh 当 access token 过期后,用户执行操作,我们会弹出一个窗口进行自动续期,续期通过后弹窗自动关闭,然后再次提交一下接口
    ghjh
        8
    ghjh  
    OP
       2024-07-05 09:53:29 +08:00
    @Blake2Wang 这种对异常工况的处理会不会变得复杂呢。
    比如 refresh 失效,网络原因刷新请求没有过来等等
    ghjh
        9
    ghjh  
    OP
       2024-07-05 09:54:36 +08:00
    @2han9wen71an #7 同时有多个请求的 token 过期,也会用 refresh 多次刷新么。
    Blake2Wang
        10
    Blake2Wang  
       2024-07-05 09:59:37 +08:00
    @ghjh 二次封装 request ,这些逻辑写在通用的请求和响应拦截器中,我的博客很久没维护了,你直接搜索一下 token 无感刷新,看一下代码就懂了,随便找了一篇给你 https://blog.csdn.net/weixin_57909742/article/details/134310007
    iamobj
        11
    iamobj  
       2024-07-05 10:01:38 +08:00
    就用 3 楼的方法,如果懒得自己手撸维护请求队列,前端好像有个 alova 请求库,内置了无感刷新 token 的策略
    ghjh
        12
    ghjh  
    OP
       2024-07-05 10:18:19 +08:00
    @Blake2Wang #10
    @iamobj 好的,感谢各位。我了解一下
    ke1e
        13
    ke1e  
       2024-07-05 10:53:17 +08:00
    过期了再重新请求 acess token ,不用维护 refresh token
    stephenxiaxy
        14
    stephenxiaxy  
       2024-07-05 12:22:06 +08:00
    refresh_token 是不应该由三方前端持有的,而是三方后端持有的吧
    jayesslin
        15
    jayesslin  
       303 天前
    用 access token 请求。
    长票短票都在 redis ? 服务端自动刷新就行 ;
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:07 · PVG 06:07 · LAX 15:07 · JFK 18:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.