APP / 小程序 clsdk-clapp 接入流程
APP / 小程序负责移动端登录态、角色选择、应用菜单权限、runtime provider、业务页面展示和统一请求头。移动端只持有用户态上下文,不保存服务态密钥。
接入步骤
- 创建或确认 uniapp / 小程序仓。
- 安装
clsdk-clapp。 - 配置中间件地址、
appId、addonsType。 - 接入
currentUserInfoProvider。 - 接入
appMenuAuthorityProvider。 - 登录后如果用户有多个上下文,必须选择具体角色。
- 超管不能直接绕过角色进入业务首页。
- rebuild runtime。
- 根据
app_menu控制页面显示。 - 业务请求携带
app-id、addons-type、x-token。 - 权限不足要明确提示,不做静默兜底。
- 构建和微信开发者工具测试命令以项目实际配置为准,不得臆造命令。
安装方式
按 SDK 仓正式 README 和 Gitee tag 方式填写。SDK README 版本示例为:
bash
npm install git+https://gitee.com/lixiaodongdong/clsdk-clapp.git#v0.2.1如果 tag 版本无法从 SDK README 或 Gitee tag 确认,应标注“以 SDK 仓 README 和 Gitee tag 为准”,不得编造版本。正式项目不允许提交本地 file: 依赖。
runtime provider
currentUserInfoProvider负责提供当前登录用户与当前上下文。appMenuAuthorityProvider负责提供当前角色在应用菜单中的授权结果。- provider 应优先走业务后端代理或正式用户态接口,不在移动端保存
PermanentKey、SystemKey、tempKey。 - runtime rebuild 后再进入业务首页,避免菜单、角色和默认页还未准备好就渲染业务页面。
角色选择
- 登录返回多个上下文时,必须让用户选择具体角色。
- 超管也必须选择具体业务角色后进入业务首页。
- 不能因为用户是超管就绕过角色、菜单和 Casbin 链路。
请求头
移动端业务请求主要携带:
app-id。addons-type。x-token。
移动端请求链不携带 x-app-key,也不保存 SystemKey、PermanentKey、tempKey。
验收口径
- 能登录。
- 超管不能绕过角色。
- 能选择具体角色。
- 能读取
app_menu。 - 页面按应用菜单显示。
- 权限不足提示明确。
- 真机或开发者工具至少完成基础流程测试。