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 字符,需保证唯一性。 |
timestamp | token 有效时间戳,格式为自 1970 年 1 月 1 日零时起经过的秒数。比如,如果你将 timestamp 设为当前时间戳再加 600 秒,那么 token 会在生成 10 分钟后过期。 |
2. 加密字符串
生成不可逆加密的 token 字符串 secToken,生成规则:
md5(md5(app_id+BodyStr) + md5(secretkey));
3. 添加时间戳并组合
将步骤 2 生成的secToken
和 timestamp
放到如下 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由用户服务器端生成,不能直接放到客户端,否则影响安全性。