Token 是一种动态密钥,通过 App ID、权限密钥、用户名和 Token 有效时间戳等参数生成,安全性较高。在正式生产环境等对安全要求较高的场景中,我们推荐使用 RTM Token 鉴权。
打开权限密钥
系统默认使用 App ID 鉴权模式,如需使用 Token 鉴权方式必须前往应用配置页面打开「权限密钥」功能。
权限密钥功能一旦打开,不能关闭,如需关闭该功能请联系客服。
操作步骤
- 应用创建后,在应用列表中点击操作的编辑按钮。
- 点击权限密钥的启用按钮,打开权限密钥功能。
- 复制该权限密钥字符串,前往服务端生成 Token。
生成 RTM Token
我们在 GitHub 上提供了一个开源的 anyRTC Dynamic Key 仓库。./<language>/src
文件夹下包含生成各种版本的 Dynamic key 和 RTM Token 的源码。你可以使用 RtmTokenBuilder
生成 RTM Token。./<language>/sample
文件夹下包含用于演示 RTM Token 生成的示例代码。RtmTokenBuilderSample
可以用来演示如何生成 RTM Token。
RTM Token 采用业界标准化的 HMAC/SHA1 加密方案,在 Node.js、Java、Python、C++ 等绝大多数通用的服务端开发平台上均可获得所需加密库。具体加密方案可参考 Authentication code。
RtmTokenBuilder
参数说明(C++)
static std::string buildToken(const std::string& appId,
const std::string& appCertificate,
const std::string& userAccount,
RtmUserRole userRole,
uint32_t privilegeExpiredTs = 0);
参数 | 描述 |
---|---|
appId | 项目 App ID。 |
appCertificate | 项目权限密钥。 |
userAccount | RTM 系统用户 ID。 |
userRole | 用户角色。暂时只支持一种角色,请使用默认值 Rtm_User 。注:使用 php 生成 Token 时请勿携带。 |
privilegeExpiredTs | 此参数暂不生效。你无需设置此参数。 |
每个 RTM Token 的有效期都是 24 小时。
使用 RTM Token
你可以参考如下步骤使用 RTM Token:
- 客户端需要 RTM Token 鉴权服务时,向服务端发送获取 RTM Token 的请求。
- 服务端收到请求后 RTM Token 生成器生成一个 RTM Token,然后将生成的 RTM Token 发送给客户端。
- RTM Token 具有有效期。在 RTM Token 失效后,你需要在客户端调用 renewToken 方法更新 RTM Token,并使用新的 RTM Token 登录 RTM 系统。