产品百科 |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


相关文章
|
9月前
sa-token实现网关调用认证服务统一鉴权
sa-token实现网关调用认证服务统一鉴权
452 0
|
JSON 安全 数据安全/隐私保护
Refresh Token的使用场景以及如何与JWT交互
在这篇文章中,我们将探索由OAuth2定义的Refresh Token的概念。我们将会明白为什么他们会这样做,以及他们如何与其他类型的Token进行比较。我们也将通过一个简单的例子来学习如何使用它们。
18190 0
|
6月前
|
JavaScript 前端开发 Linux
【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate()
【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate()
|
9月前
|
存储 缓存 NoSQL
【视频+源码】登录鉴权的三种方式:token、jwt、session实战分享
【视频+源码】登录鉴权的三种方式:token、jwt、session实战分享
156 1
App开放接口api安全:Token签名sign的设计与实现
在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些 接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等,但是为了安全起见让用户暴露的明文密码次数越少越好,我们一般在web项目 中,大多数采用保存的session中,然后在存一份到cookie中,来保持用户的回话有效性。
|
SQL API Go
go-zero jwt 鉴权快速实战
go-zero jwt 鉴权快速实战
239 0
EMQ
|
JSON 安全 算法
深入解析 MQTT 中基于 Token 的认证和 OAuth 2.0
本文将深入了解基于 Token 的认证和 OAuth 2.0,阐述它们的原理并展示它们在 MQTT 中的应用。
EMQ
394 0
深入解析 MQTT 中基于 Token 的认证和 OAuth 2.0
|
Java
如何获取第三方应用授权app_auth_token
一,说明    1.第三方应用文档:[url]https://docs.open.alipay.com/20160728150111277227/intro[/url]     2.作用:代替商户发起相关逻辑请求 二,配置    1.
5276 12
|
JSON 缓存 JavaScript
.NET微信网页开发之JS-SDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取详解
.NET微信网页开发之JS-SDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取详解
437 0
.NET微信网页开发之JS-SDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取详解
|
JSON 算法 API
阿里云PAI EAS 自定义Token使用示例
为实现一站式算法应用,PAI针对在线推理场景提供了在线预测服务PAI-EAS(Elastic Algorithm Service),支持基于异构硬件(CPU和GPU)的模型加载和数据请求的实时响应。通过PAI-EAS,您可以将模型快速部署为RESTful API,再通过HTTP请求的方式调用该服务。模型部署后,可以基于http方式&认证Token的方式实现服务的Restful 方式调用。本文主要演示自定义token模型的部署方式。
2516 2
阿里云PAI EAS 自定义Token使用示例

热门文章

最新文章