包含前端(Vue3 + VueFlow 画布)、后端(Go)、文档体系。 - 工作台画布:节点拖放、连线模式、右键菜单、AI 助手 - 后端:连接器 API、专员种子数据 - 导航:左侧导航、工坊、市场、控制台
1.2 KiB
1.2 KiB
[OPEN] admin-auth-misjudge
症状
- 用户当前使用系统管理员账号,但界面中出现“需要管理员权限”提示。
- 预期行为:管理员访问管理员页面与管理员接口时,不应被后端返回 403。
当前范围
- 前端:登录态恢复、路由守卫、请求拦截器、管理员页面初始化请求。
- 后端:JWT 解析、中间件注入
current_user、管理员鉴权中间件。
待证伪假设
- 前端页面初始化时,某个管理员接口在
fetchMe()完成前提前发出,导致用旧 token 或空用户态触发 403。 - 浏览器中实际持有的 token 与当前展示的管理员身份不一致,存在多标签页/旧 token 残留。
- 后端
Auth中间件能识别登录用户,但RequireAdmin前拿到的current_user为空或角色不是admin。 - 某个被认为是“管理员页面”的请求实际命中了错误接口或未走标准鉴权链,导致误报 403。
调试计划
- 给前端请求链与后端鉴权链加入最小化埋点。
- 重现一次管理员访问触发“需要管理员权限”的场景。
- 对照日志确认是 token、
/me、路由守卫还是后端鉴权分叉。 - 基于证据做最小修复,再做前后对比验证。