阿里云RTC为您提供两种生成Token方式,您可以根据业务需求选择在控制台生成或服务端生成。
背景信息
Token是阿里云设计的一种安全保护签名,目的是为了阻止恶意攻击者盗用您的云服务使用权。您需要在相应SDK的登录函数中提供AppID、UserID、ChannelId、Nonce、TimeStamp、GSLB和Token信息。其中AppID用于标识您的应用,UserID用于标识您的用户,而Token则是基于前两者计算出的安全签名,它由SHA256加密算法计算得出。只要攻击者不能伪造Token,就无法盗用您的云服务流量。
控制台
服务端
采用服务端计算Token的方案,可以最大限度地保障计算Token的密钥不被泄露,具体的流程如下所示。
- 您的App在调用SDK的初始化函数之前,首先要向您的服务器请求Token。
- 您的服务器根据如下参数计算Token。
token = sha256(appId + appKey + channelId + userId + nonce + timestamp)
- 服务器将计算好的鉴权信息返回给您的App。
- 您的App将获得的鉴权信息通过特定API传递给SDK。
- SDK将鉴权信息提交给阿里云服务器进行校验。
- 阿里云校验鉴权信息,确认合法性。
- 校验通过后,即可开始提供实时音视频服务。

参数 | 说明 |
---|---|
AppID | 应用ID,通过控制台创建。 |
UserID | 您的唯一标识,AppServer生成。同一个UserId的用户在其他端登录,先入会的端会被后入会的端踢出房间。
由字母[a-zA-Z]和数字[0-9]组成,不包含特殊字符,最大64字节。例如:2b9be4b25c2d38c409c376ffd2372be1。 |
ChannelID | 频道ID,AppServer生成。
由字母[a-zA-Z]和数字[0-9]组成,不包含特殊字符,可以用连接号(-)分隔,最大64字节。例如:181-218-3406。不支持设置ChannelID为0。ChannelID不可以重复,需要保持ChannelID的唯一性。 |
Nonce | 令牌随机码,由AppServe生成。
需要加上前缀AK-,以标识采用应用鉴权私钥(AppKey)方案。格式推荐您用UUID,由字母[a-zA-Z]和数字[0-9]组成,不包含特殊字符,最大64字节。例如:AK-2b9be4b25c2d38c409c376ffd2372be1。 |
Timestamp | 令牌过期时间戳,由您生成指定令牌过期时间。为Unix时间格式,AppServer所运行的服务器需保持时间同步。例如:当前时间戳为1560415794(2019-06-13 16:49:54)令牌2天后过期,Timestamp设置为1560588594(2019-06-15 16:49:54)。 |
Token | 加入频道Token,可以通过AppServer生成。实际算法为sha256(appId + appKey + channelId + userId + nonce + timestamp) 。
|
GSLB | 服务地址,该参数是数组类型,当前请使用:["https://rgslb.rtc.aliyuncs.com"],请您通过业务服务器下发到客户端SDK,不建议您将该地址固化在客户端代码。 |
-
Golang程序实例请查看
CreateToken
函数,详情请参见Golang Demo。 -
Java程序实例请查看
createToken
函数,详情请参见Java Demo。 -
Python程序实例请查看
create_token
函数,详情请参见Python Demo。 -
C#程序实例请查看
CreateToken
函数,详情请参见C# Demo。 -
Nodejs程序实例请查看
CreateToken
函数,详情请参见Node.js Demo。 -
PHP程序实例请参查看
CreateToken
函数,详情请参见PHP Demo。
在文档使用中是否遇到以下问题
更多建议
匿名提交