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