快速开始
本文档将介绍从创建百度智能云账号开始,到完成一次音视频通信为止,之间所需要的必要的操作步骤。
准备工作
创建应用
2.1 进入RTC产品控制台,选择应用管理-创建应用。
在AppServer上部署token生成服务
为保证实时通信的安全,在通信时需要进行特殊鉴权。客户在自己的AppServer(客户的后端服务器)上部署token生成服务,生成token并在通信中使用,来实现通信的鉴权。
RTC鉴权机制
鉴权流程如下:
- 当App需要使用RTC服务时,向AppServer(客户的后端服务器)请求Token;
- AppServer根据token生成算法以及相应的AppKey生成相应的Token,并下发给App;
- App在调用RTC SDK时,提供Token;
- SDK在与RTC后端服务器发起http/websocket连接时提供Token参数;
- RTC后端对token进行验证,验证不通过时会拒绝访问;验证通过,则提供RTC服务。
部署token生成服务
为了实现上述的鉴权机制,需要在客户的AppServer上部署Token生成服务。
Token计算需要以下参数:
- AppID:由baiduRTC提供,全局唯一,用于识别应用;
- AppKey: 由baiduRTC提供,每个AppID拥有一个AppKey,并且可更新;您可以登录百度智能云- 并进入RTC控制台查看AppID和AppKey。
- RoomName: 房间名称,由客户指定并维护;
- Uid: 用户id,由客户指定并维护,客户保证其唯一性;
- ts: token生成时的秒级别unix时间戳;
- ExpectTS: 过期时间,秒级别unix时间戳;
- Version:鉴权版本,当前取值004。
需要注意的是,Token与AppID+RoomName+Uid对是唯一绑定关系,不可以将一个正确的token用于其它的AppID+RoomName+Uid对。
Token计算步骤
- 输入需要的6个参数。
- 生成当前秒级别时间戳ts。格式需要转换为十进制Unix时间戳。推荐一个在线转换网站
- 生成randomString。随机一个int型整数,并转成对应16进制数字字符串,并补齐至8位。
- 生成签名。使用HmacSHA1算法加密来计算签名,结果返回16进制字符串。 key=appKey; data="ACS"(固定的ACS三个字母) + appID + ts + randomString + roomName + uid + expectTs; signature = HamcSHA1(key, data);
- 拼接token
token = version + signature + ts + randomString + expectTs;
Token的格式:
字段 | 说明 | 长度 | 示例 |
---|---|---|---|
version | 鉴权版本 | 3 | 004 |
ts | token生成时的秒级别unix时间戳 | 10字符 | 154476606 |
signature | 签名 | 40字符 | 8f50a1f280e69f4581dd8bf8b3b9cc9d277cd3a6 |
randomString | salt string,int转16进制字符串 | 8字符,不足补0 | dabdd97c |
expectTs | 过期时间,秒级别unix时间戳 | 10字符 | 1578380254 |
计算示例
准备好的各参数为: appID: app-jcagj2g5ecrqv7bn
version: 004
ts: 1553144847
randomString: dabdd97c
expectTs: 1578380254
roomName:aaa
uid: 54321
AppKey: s-jcagj2g5eewai6u3p3
计算得signature: HamcSHA1(s-jcagj2g5eewai6u3p3, ACSapp-jcagj2g5ecrqv7bn1553144847dabdd97caaa543211578380254) = 08b1a06afc9c138625dc7fc9ab5e7770c5156f23
构造token为:00408b1a06afc9c138625dc7fc9ab5e7770c5156f231553144847dabdd97c1578380254
您可以下载token生成实例代码进行参考(示例代码包含JAVA和Python两种语言)。
您也可以使用token在线生成工具来生成token; 使用token在线校验工具来校验token。
集成客户端SDK
您可以访问 下载专区 下载不同终端最新版SDK。