登录上下文与默认页说明
查看文档来源信息
- 来源目录:
docs - 来源文件:
契约说明/登录上下文与默认页说明.md
当前正式口径
- PCWEB 登录和身份切换都按“运行上下文”处理,不再按“纯角色”处理。
- 当前正式上下文只有
role和super_admin两种。 getUserInfo返回的currentContext、contextOptions、defaultPage、commonScope是前端运行时唯一正式来源。selectedAuthorityId=0只在super_admin上下文下合法。- 顶部身份显示以当前上下文为准,正式区分“角色上下文”和“超级管理员上下文”。
关键字段口径
| 字段 | 含义 |
|---|---|
currentContext.accessMode | 当前运行上下文类型,正式取值为 role 或 super_admin |
currentContext.authorityId | 当前角色 ID;super_admin 上下文下固定为 0 |
contextOptions | 当前账号可切换的正式上下文列表 |
selectedAuthorityId | 当前生效角色 ID;super_admin 下固定为 0 |
defaultPage.pageCode | 当前上下文正式默认页页面码 |
commonScope | 当前上下文公共治理范围 |
运行规则
- 登录成功后,必须按“读取
getUserInfo-> 同步权限 -> 构建导航 -> 进入默认页”的顺序重建运行时。 - 头部身份切换成功后,必须优先接管响应头中的新 token,并按同一顺序完整重建运行时。
- 身份切换窗口内,切换前旧 token 发出的并发请求如果返回
reload,只能按旧运行时结果吞掉,不能清空新 token 或跳回登录页。 - 依赖上下文的页面数据必须跟随
runtimeGeneration重新拉取,不能保留切换前的列表与统计结果。 - 默认页统一按
defaultPage.pageCode和路由注册结果解析,不再把历史菜单路径当成正式默认页来源。 super_admin上下文下,前端权限 store 允许当前模块已发布菜单范围内的正式放行;没有发布菜单时不生成兜底菜单。role上下文下,sys_base或明确代码动作清单场景继续按getAuthorityCodeActionStatus判断页面和动作权限;下游业务模块按getPublishedMenuAuthorityStatus判断页面和动作权限。- 默认页必须来自后端返回的已发布菜单默认页结果;无发布菜单、无授权或默认页失效时,前端按未配置处理,不自动跳转到演示页或公共治理页。
不允许的做法
- 不允许仅修改本地
authorityId或accessMode而不重新拉取getUserInfo。 - 不允许把
selectedAuthorityId <= 0一律判定为异常,从而误伤super_admin上下文。 - 不允许继续沿用切换前的菜单、默认页和动作权限结果。
- 不允许在身份切换成功后,仍因旧 token 请求返回
reload而把用户踢回登录页。 - 不允许页面顶部身份已变化,但列表、公共范围、按钮状态仍停留在切换前上下文。
- 不允许在
asyncMenu返回空菜单时自动生成本地演示菜单或公共治理兜底菜单。 - 不允许下游业务模块继续用代码动作清单状态作为业务菜单授权来源。