You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于gopkg.in/oauth2.v3:新access_token使用后过期refresh_token的实现问询

解决gopkg.in/oauth2.v3刷新token时旧access_token延迟失效的需求
  • 默认manage.Manager的局限:你观察得没错,只要RefreshingConfig里的IsRemoveAccess或IsRemoveRefreshing设为true,刷新token时旧access_token会被立即移除。这个库的默认逻辑就是如此,没有隐藏配置能直接实现“新access_token被使用后才失效旧token”的需求。
  • 没有简便的开箱即用方案,得自己做定制开发:
    1. 包装或重写TokenStore:扩展现有存储逻辑,给旧access_token添加「待失效」标记,刷新时不直接删除旧token,而是标记状态。
    2. 自定义Manager:重写RefreshToken方法,生成新token后,只给旧token打标记,不立即删除。
    3. 修改鉴权逻辑:在验证access_token有效性时,若检测到当前使用的是新token,再把对应旧的「待失效」token(包括access_token和refresh_token)彻底删除;如果客户端仍在使用旧token且未过期,允许正常通过鉴权。
  • 关于Google Home的异议:Google Home这类官方服务的OAuth2实现确实要求刷新token后旧access_token能短暂有效,避免客户端因网络等问题未收到新token而直接异常,你的需求是符合这类场景规范的。

内容的提问来源于stack exchange,提问作者poppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:57:07