# [OPEN] admin-auth-misjudge ## 症状 - 用户当前使用系统管理员账号,但界面中出现“需要管理员权限”提示。 - 预期行为:管理员访问管理员页面与管理员接口时,不应被后端返回 403。 ## 当前范围 - 前端:登录态恢复、路由守卫、请求拦截器、管理员页面初始化请求。 - 后端:JWT 解析、中间件注入 `current_user`、管理员鉴权中间件。 ## 待证伪假设 1. 前端页面初始化时,某个管理员接口在 `fetchMe()` 完成前提前发出,导致用旧 token 或空用户态触发 403。 2. 浏览器中实际持有的 token 与当前展示的管理员身份不一致,存在多标签页/旧 token 残留。 3. 后端 `Auth` 中间件能识别登录用户,但 `RequireAdmin` 前拿到的 `current_user` 为空或角色不是 `admin`。 4. 某个被认为是“管理员页面”的请求实际命中了错误接口或未走标准鉴权链,导致误报 403。 ## 调试计划 - 给前端请求链与后端鉴权链加入最小化埋点。 - 重现一次管理员访问触发“需要管理员权限”的场景。 - 对照日志确认是 token、`/me`、路由守卫还是后端鉴权分叉。 - 基于证据做最小修复,再做前后对比验证。