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