bindbox-game/docs/admin_401_optimization/CONSENSUS_admin_401_optimization.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

1.6 KiB
Raw Blame History

优化后台管理 401 状态提醒

1. 需求分析

1.1 原始需求

用户反馈目前后台管理系统中,当 API 返回 401 (Unauthorized) 状态码时,系统没有提醒用户去重新登录,而是直接跳转或静默失败。用户希望增加明确的提醒。

1.2 现状分析

通过代码分析发现:

  1. web/admin/src/utils/http/index.ts 中存在 Token 无感刷新机制。
  2. 当 401 发生时,系统尝试刷新 Token。
  3. 如果刷新失败catch block 或 token 为空),系统目前调用 handleUnauthorizedErrorSilently()
  4. handleUnauthorizedErrorSilently 方法明确注释为“静默处理,不显示错误消息,直接跳转”。
  5. 同文件存在 handleUnauthorizedError 方法,该方法会调用 showError 并显示提示。
  6. web/admin/src/utils/http/error.ts 中的 showError 方法已经针对 401 状态码配置了友好的 ElMessage.warning 提示:"登录状态已过期,请重新登录"。

1.3 解决方案

将 Token 刷新失败后的处理逻辑从“静默处理”改为“显式提示处理”。

2. 实施计划

  1. 修改 web/admin/src/utils/http/index.ts
  2. 在响应拦截器中,当 Token 刷新失败时,将 handleUnauthorizedErrorSilently() 替换为 handleUnauthorizedError()
  3. 确认 handleUnauthorizedError 会触发 showError,从而展示“登录状态已过期”的提示。

3. 验收标准

  • 当用户 Token 过期且刷新失败时,界面应弹出“登录状态已过期,请重新登录”的提示。
  • 系统随后自动跳转至登录页。