# 任务清单:自动刷新 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 更新相关注释