令牌生命周期管理

访问令牌短期有效、刷新令牌长期持有并一次性轮换;过期与刷新失败要区分处理(重新登录与静默刷新),客户端与服务端时钟偏差要留出容忍窗口。

访问令牌分钟级有效期,减少泄露窗口
刷新令牌长期有效,使用后轮换并检测重放
处理过期返回 401 并提示刷新;刷新失败引导重新认证

刷新流程(伪代码)

刷新流程(伪代码)
on401(response):
  if (refreshToken 有效):
    新令牌对 = refresh(refreshToken)   // 旧刷新令牌立即失效
    重放原请求一次
  else:
    清除会话 → 引导重新登录
刷新令牌轮换配合重放检测:旧令牌再次出现时按泄露处置,吊销会话并告警。

易错点

  • 刷新令牌长期不轮换,泄露后长期可用
  • 客户端把 401 一律当网络错误重试,陷入死循环

数据来源与参考

  • RFC 9700:OAuth 2.0 Security Best Current Practice
  • RFC 6749:OAuth 2.0
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌