-
1. 后端处理服务器API
- 1.1 数据库结构
- 1.2 后端处理服务器HTTP 接口
- 1.3. 数据包
-
2. 后端处理服务器应用集成API
- 2.1 设置应用集成
- 2.2 API 格式和签名机制
- 2.3 API 定义
- 3. 客户端扩展机制
-
4. 会话机器人开发指南
- 4.1 机器人应用开发
扩展 API 权限
- 2020-08-11 11:00:38
- 孙浩
- 5283
- 最后编辑:孙浩 于 2020-08-11 11:05:27
- 分享链接
扩展 API 调用鉴权机制
在扩展模块调用 API 时会实时进行权限验证,如果当前用户所使用的扩展没有对应的 API 权限则调用 API 会失败。目前扩展在运行时最终可用的权限由如下环境共同决定:
- 客户端自身允许提供的 API 权限,一些特别定制的客户端可能只拥有有限的扩展 API 权限;
- 当前服务器授权中允许的扩展 API 权限,不同的授权版本可能具备的权限不一样,通常更高级版的授权拥有更多权限;
- 扩展自身在扩展描述文件中申请的权限。
权限定义格式
扩展 API 权限由一个列表定义(在代码中使用字符串数组),列表中每一项表示一个或一组权限,也可以用于排除部分权限,下面是可能的扩展权限定义:
- 权限完整名称,例如user.getCurrentUser表示拥有获取当前用户信息权限;
- 权限名称前缀,例如members表示拥有权限名称前缀为members.的所有权限,通常使用前缀来表示拥有对应模块下的所有权限;
- @L权限等级, 例如@L2表示拥有等级为 2 或者等级小于 2 的所有权限;
- @L权限等级!, 例如@L2!表示拥有仅等级为 2 所有权限,但没有等级小于 2 的权限;
- -权限完整名称, 例如-members.getMember从权限清单中排除名称为members.getMember(获取成员信息)的权限;
- -权限名称前缀, 例如-members从权限清单中排除名称前缀为members.的所有权限;
在描述文件中申请权限
开发扩展时,扩展需要在描述文件中申明扩展模块中所需要的权限,如果没有申明权限,则扩展模块运行时可能出错。在扩展描述文件中申明权限的格式为:
{ "name": "xext-my-extension", // 使用 usesPermissions 来在一个数组中申明权限 "usesPermissions": [ "user", "members", "@L3", "nodeModules" ], // ...此处省略扩展描述文件中的其他属性 }
发表评论
联系我们
公众号
微信公众号