Files
sionrui/openspec/changes/add-auto-refresh-token/tasks.md
2025-12-21 22:24:16 +08:00

1.2 KiB
Raw Blame History

任务清单:自动刷新 refreshToken 功能

1. 实现请求拦截器 token 预检查

  • 1.1 在 client.js 请求拦截器中添加 token 过期检查逻辑
  • 1.2 调用 tokenManager.isExpired() 检查是否需要刷新
  • 1.3 对白名单接口跳过检查login、refresh-token、register 等)

2. 实现自动刷新机制

  • 2.1 创建异步刷新函数,内部调用 /auth/refresh-token 接口
  • 2.2 刷新成功后更新 localStorage 中的 token
  • 2.3 刷新失败时清理 token 并抛出错误

3. 实现并发控制

  • 3.1 添加 isRefreshing 标志位防止并发刷新
  • 3.2 如果正在刷新,等待刷新完成
  • 3.3 使用 Promise 链确保请求顺序执行

4. 优化用户体验

  • 4.1 添加调试日志(仅开发环境)
  • 4.2 确保刷新过程对用户透明
  • 4.3 错误处理时提供清晰的日志信息

5. 测试验证

  • 5.1 模拟 token 过期场景,验证自动刷新
  • 5.2 验证并发请求不会触发多次刷新
  • 5.3 验证白名单接口不受影响
  • 5.4 验证刷新失败时的错误处理

6. 代码审查

  • 6.1 检查代码规范
  • 6.2 验证日志输出适当
  • 6.3 确认性能影响最小
  • 6.4 更新相关注释