1. 后端处理服务器API
1.1  数据库结构
1.2  后端处理服务器HTTP 接口
1.3. 数据包
1.3.1  数据包的基本信息
1.3.2  所有数据包
2. 后端处理服务器应用集成API
2.1  设置应用集成
2.2  API 格式和签名机制
2.3  API 定义
3. 客户端扩展机制
3.1. 扩展定义
3.1.1  扩展类型
3.1.2  扩展包目录结构
3.1.3  扩展描述文件
3.2. 扩展模块
3.2.1  主入口模块
3.2.2. 扩展模块API
3.2.2.1  扩展 API 概览
3.2.2.2  扩展 API 权限
3.2.2.3  扩展 API 定义
3.2.3  扩展实例对象
3.2.4  数据存储机制
3.2.5  自定义上下文菜单
3.2.6  自定义命令
3.2.7  自定义网址解析
3.3. 开发扩展
3.3.1  载入开发中的扩展
3.3.2  开发应用扩展
3.3.3  开发插件扩展
3.3.4  开发主题扩展
3.4  内置扩展
3.5  分发扩展
4. 会话机器人开发指南
4.1  机器人应用开发

扩展 API 权限

2020-08-11 11:00:38
孙浩
4412
最后编辑:孙浩 于 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"
    ],
    // ...此处省略扩展描述文件中的其他属性
}
发表评论
捌 乘 捌 =
评论通过审核后显示。