1.8 KiB
1.8 KiB
项目文档:平台账户授权登录落点 v1.0
1. 项目概述
平台总后台使用 Vue 3、Vue Router、Pinia 和 Arco Design Vue。本功能使非 root 账号在登录后进入角色实际获授权的首个业务页,不再默认强制进入数据概览。
2. 目录结构
frontend/platform_admin/
├── src/router/authorized-landing.ts # 授权历史地址和首个叶子菜单选择
├── src/router/routes/base.ts # 零菜单权限页路由
├── src/router/constants.ts # 权限守卫允许的引导页
├── src/views/login/components/login-form.vue # 登录后加载资料并选择落点
├── src/views/no-permission/index.vue # 尚未分配菜单权限引导
└── scripts/check-authorized-login-landing.mjs # 登录落点回归检查
3. 核心规则
- 登录成功后立即读取当前账号资料和服务端菜单。
- 登录前历史地址是有权叶子页时恢复该地址。
- 历史地址无权、不存在或是父级分组时,从服务端已过滤菜单树中选择首个非隐藏叶子页。
- 角色没有任何可访问菜单时进入独立 403 引导页,可在 root 分配权限后重新加载,也可退出登录。
- 直接猜测未授权业务地址仍由前后端权限守卫拒绝,登录落点不扩大角色权限。
4. 变更记录
- v1.0:新增授权登录落点解析、历史地址安全恢复和零菜单权限引导页。
- 不修改 JWT、平台角色数据、菜单分配接口和后端鉴权中间件。
5. 维护指南
- 新增一级菜单时必须保持服务端排序、前端路由
menuCode和叶子页名称一致。 - 不得将父级路由的硬编码重定向作为非 root 默认首页。
- 调整登录或菜单时至少执行
pnpm auth-landing:check、pnpm type:check和pnpm build。