产品百科 |Ali RTC 生成 Token 的两种方式

简介: 阿里云 RTC 为您提供两种生成 Token 方式,您可以根据业务需求选择在控制台生成或服务端生成。

音视频通信 RTC(Real-Time Communication)是阿里云覆盖全球的实时音视频开发平台,依托核心音视频编解码、信道传输、网络调度技术,提供高可用、高品质、超低延时的音视频通信服务,让用户快速搭建多端实时应用,适用于在线教育、视频会议、互动娱乐、音视频社交等场景。


产品链接:https://www.aliyun.com/product/rtc


阿里云 RTC 为您提供两种生成 Token 方式,您可以根据业务需求选择在控制台生成或服务端生成。

前提条件

在生成 Token 前,您需要完成以下操作:

背景信息

Token 是阿里云设计的一种安全保护签名,目的是为了阻止恶意攻击者盗用您的云服务使用权。您需要在相应 SDK 的登录函数中提供 AppIDUserIDChannelIdNonceTimeStampGSLB Token 信息。其中 AppID 用于标识您的应用,UserID 用于标识您的用户,而 Token 则是基于前两者计算出的安全签名,它由 SHA256 加密算法计算得出。只要攻击者不能伪造 Token,就无法盗用您的云服务流量。

控制台

  1. 登录音视频通信 RTC 控制台
  2. 在左侧导航栏,单击接入工具
  3. Token 生成器页签下,输入生成 Token 所需要的参数。
参数 描述
AppID 应用 ID,在控制台应用管理页面创建和查看。
AppKey 应用 AppKey,在控制台应用管理页面查询。
ChannelId 频道 ID。1~64 位,支持大小写字母、数字、下划线(_)、中划线(-)。
UserId 用户 ID。1~64 位,支持大小写字母、数字、下划线(_)、中划线(-)。
Nonce 随机码。需要加上前缀 AK-,由字母 [a-zA-Z] 和数字 [0-9] 组成,不包含特殊字符,最大 64 字节。例如:AK-2b9be4b25c2d38c409c376ffd2372be1。
TimeStamp 过期时间戳。可以选择 12 小时、24 小时、3 天和 7 天,代表令牌有效时间为当前时间 + 所选择小时数。
  1. 单击生成image.png

服务端

采用服务端计算 Token 的方案,可以最大限度地保障计算 Token 的密钥不被泄露,具体的流程如下所示。

  1. 您的 App 在调用 SDK 的初始化函数之前,首先要向您的服务器请求 Token
  2. 您的服务器根据如下参数计算 Token
token = sha256(appId + appKey + channelId + userId + nonce + timestamp)
  1. 服务器将计算好的鉴权信息返回给您的 App。
  2. 您的 App 将获得的鉴权信息通过特定 API 传递给 SDK。
  3. SDK 将鉴权信息提交给阿里云服务器进行校验。
  4. 阿里云校验鉴权信息,确认合法性。
  5. 校验通过后,即可开始提供实时音视频服务。

image.png

参数 说明
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,不建议您将该地址固化在客户端代码。

服务端生成 Token 的签名算法为 SHA256,您可以参见如下版本的生成 Token 函数:

  • 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


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png


相关文章
|
11月前
|
移动开发 JavaScript 开发工具
uniapp接入app
uniapp接入app
1421 156
|
XML 前端开发 Java
怎样将MultipartFile和File互转
该文介绍了如何在Java开发中优雅地转换MultipartFile和File。MultipartFile是Spring框架用于接收上传文件的类,而File是操作系统文件的代表。文章提供了三种将MultipartFile转换为File的方法:使用`transferTo`方法、FileOutputStream和Java NIO。另外,还介绍了在测试场景下将File转换为MultipartFile,通过MockMultipartFile实现。
2302 1
|
存储 数据可视化 定位技术
以考勤记录、微信聊天记录主张存在加班事实能否获支持?
在现代职场中,加班管理成为HR的核心挑战。本文探讨如何通过考勤记录与微信聊天记录佐证加班事实,结合数字化工具提升管理效能。分析加班认定困境、证据体系构建及实战案例,提出智能预警、证据协同和动态申报三大优化路径。数字化管理不仅减少争议,还助力企业实现合规与共赢,提升员工满意度与组织效能。
|
缓存 数据处理 UED
App加载页面的等待体验设计技巧
App加载页作为整个用户体验的一部分,直接影响用户对于产品服务的忠诚度和满意度。
563 13
|
存储 运维 监控
ITIL服务的5个运营级流程
【7月更文挑战第15天】TIL是IT服务管理的标准框架,聚焦服务支持和交付。
|
数据采集 数据挖掘 大数据
47页PPT | 如何利用Python进行自动化办公?
47页PPT | 如何利用Python进行自动化办公?
318 0
|
数据可视化 开发工具 计算机视觉
LabVIEW视觉采集软件(VAS)、视觉生成器(VB)和视觉开发模块(VDM)之间有什么不同
LabVIEW视觉采集软件(VAS)、视觉生成器(VB)和视觉开发模块(VDM)之间有什么不同
526 1
|
SQL 关系型数据库 MySQL
navicat如何获取MySQL数据库的所有表名称
【8月更文挑战第7天】navicat如何获取MySQL数据库的所有表名称
1783 4
|
存储 安全 网络安全
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
SSH(Secure Shell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用 SSH 连接到远程 Git 存储库时,您可以使用 SSH 密钥对来确保安全性。以下是关于如何生成和使用 SSH 密钥对的详细步骤: 生成 SSH 密钥对
1067 2
|
安全 网络安全 数据安全/隐私保护
如何在远程 SSH 服务器中创建和添加 SSH 密钥?
如何在远程 SSH 服务器中创建和添加 SSH 密钥?
4752 1
如何在远程 SSH 服务器中创建和添加 SSH 密钥?

热门文章

最新文章