切换主题
权限与运行上下文
前端根据当前授权显示入口、禁用动作或给出提示,后端负责授权和租户隔离。隐藏按钮不能替代 API 的安全检查。
先确认事实来源
| 事实 | 正式来源 | 页面怎么使用 |
|---|---|---|
| Permission / Feature 定义 | 后端 Provider 与能力目录 | 使用正式 key,不手写另一份定义 |
| 当前主体的授权和 Feature 值 | Application Configuration / 会话 | 按正式类型判断当前可用能力 |
| 当前用户、租户和语言 | 当前平台会话 | 作为请求、任务和缓存范围 |
| 页面、路由、菜单、动作 | 前端宿主 | 引用平台能力,不创造后端权限 |
| API、DTO、输入校验 | 后端与 OpenAPI | 通过 generated edge 消费 |
当前 Nuxt UI Host 从 @yoyoboot/yoyo-admin-core 正式入口取得平台合同,shared/abp 组合实际传输与配置。Starter 的模拟身份只能验证交互,不证明真实授权。
开发步骤
- 从业务模块和后端合同确认 Permission、Feature、Host-only / Tenant-only 限制。
- 使用当前 Host 的 Session 与权限入口,不复制旧 application store 或建立页面级授权事实。
- 保持菜单、直接 URL、最近访问和动作的可访问结果一致;未知 key 或缺失关键配置时不擅自放行。
- API 调用仍由后端检查权限。请求失败时按实际错误恢复,不补权限、不切换身份、不回退演示数据。
- 查询、编辑任务和缓存绑定当前身份/租户;上下文失效后旧响应与草稿不能进入新任务。
区分失败类型
| 情况 | 恢复方式 |
|---|---|
| 401 / 会话失效 | 进入平台认证失效流程,不能无限重试 |
| 403 / 已认证但无权限 | 保留会话,显示受控拒绝,不伪装成空列表 |
| 404 / 当前范围不存在 | 按资源不存在处理,不扩大 scope 查找 |
| 409 / 冲突 | 保留输入,提供重新读取或业务恢复入口 |
| 字段错误 | 回填到任务表单并保留草稿 |
| 写入成功、回读失败 | 明确已有保存事实,只重试读取 |
Permission 存在与当前主体获得它是两件事。Feature 与 Permission 都被要求时必须同时满足;业务数据、运行配置和页面身份不能互相代替。
继续阅读
仓库内的访问契约由 02-架构/01-平台与运行时/权限功能与运行时上下文.md 维护;本页只说明业务开发中的使用方式。