RTM Token 鉴权

最近更新时间:2021-03-18 11:04:19

Token 是一种动态密钥,通过 App ID、权限密钥、用户名和 Token 有效时间戳等参数生成,安全性较高。在正式生产环境等对安全要求较高的场景中,我们推荐使用 RTM Token 鉴权。

打开权限密钥

系统默认使用 App ID 鉴权模式,如需使用 Token 鉴权方式必须前往应用配置页面打开「权限密钥」功能。

权限密钥功能一旦打开,不能关闭,如需关闭该功能请联系客服。

操作步骤

  1. 应用创建后,在应用列表中点击操作的编辑按钮。

  1. 点击权限密钥的启用按钮,打开权限密钥功能。

  1. 复制该权限密钥字符串,前往服务端生成 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项目权限密钥。
userAccountRTM 系统用户 ID。
userRole用户角色。暂时只支持一种角色,请使用默认值 Rtm_User。注:使用 php 生成 Token 时请勿携带。
privilegeExpiredTs此参数暂不生效。你无需设置此参数。

每个 RTM Token 的有效期都是 24 小时。

使用 RTM Token

你可以参考如下步骤使用 RTM Token:

  1. 客户端需要 RTM Token 鉴权服务时,向服务端发送获取 RTM Token 的请求。
  2. 服务端收到请求后 RTM Token 生成器生成一个 RTM Token,然后将生成的 RTM Token 发送给客户端。
  3. RTM Token 具有有效期。在 RTM Token 失效后,你需要在客户端调用 renewToken 方法更新 RTM Token,并使用新的 RTM Token 登录 RTM 系统。