CloudHub 文档中心
下载中心 文档中心

RTC 音视频互动


Token 生成文档

token的生成由 app_id、secretkey 、channel_id、user_id、timestamp 组合生成

1. 拼接请求参数

app_id、secretkey 、channel_id、user_id、timestamp 进行拼接生成BodyStr,拼接规则:“app_id”+app_id+“channel_id”+channel+“timestamp”+timestamp+“user_id”+user_id

例如: app_id为ABC、secretkey为DEF、channel_id为123456、user_id为tempuid、timestamp为1594194452,则拼接的结果为: app_idABCchannel_id123456timestamp1594194452user_idtempuid

参数描述
app_id您企业账号的 AppID。
secretkey您的企业账号配置的 secretkey,您可以修改此配置。
channel_id标识通话频道的字符串,支持的字符集范围如下:
26 个小写字母 a-z
26 个大写字母 A-Z
10 个数字 0-9
特殊字符:-_
user_id指定用户的 ID。
Note:: ASCII 字符,需保证唯一性。
timestamptoken 有效时间戳,格式为自 1970 年 1 月 1 日零时起经过的秒数。比如,如果你将 timestamp 设为当前时间戳再加 600 秒,那么 token 会在生成 10 分钟后过期。

2. 加密字符串

生成不可逆加密的 token 字符串 secToken,生成规则:

md5(md5(app_id+BodyStr) + md5(secretkey));

3. 添加时间戳并组合

将步骤 2 生成的secTokentimestamp 放到如下 map 中

{
   "token": "<步骤2中secToken>",
   "timestamp": "<与步骤1中使用的 timestamp 必须一致>"
}

4. base64 加密

将步骤 3 中的 map 序列化为 json 字符串,然后 base64 处理

5. 添加随机字符串

将步骤 4 中得到的结果拼接上 16 位随机字符串作为掩码即可得到最终的 token,即:步骤 4 得到的结果 + “1234567890123456”

各语言示例

github各语言token生成代码示例: https://github.com/cloudhubrtc

Note: 此token由用户服务器端生成,不能直接放到客户端,否则影响安全性。