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