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

34 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务清单:自动刷新 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 更新相关注释