音視訊通信 RTC(Real-Time Communication)是阿裡雲覆寫全球的實時音視訊開發平台,依托核心音視訊編解碼、信道傳輸、網絡排程技術,提供高可用、高品質、超低延時的音視訊通信服務,讓使用者快速搭建多端實時應用,适用于線上教育、視訊會議、互動娛樂、音視訊社交等場景。
産品連結:
https://www.aliyun.com/product/rtc 阿裡雲 RTC 為您提供兩種生成 Token 方式,您可以根據業務需求選擇在控制台生成或服務端生成。前提條件
在生成 Token 前,您需要完成以下操作:
背景資訊
Token 是阿裡雲設計的一種安全保護簽名,目的是為了阻止惡意攻擊者盜用您的雲服務使用權。您需要在相應 SDK 的登入函數中提供 AppID、UserID、ChannelId、Nonce、TimeStamp、GSLB 和 Token 資訊。其中 AppID 用于辨別您的應用,UserID 用于辨別您的使用者,而 Token 則是基于前兩者計算出的安全簽名,它由 SHA256 加密算法計算得出。隻要攻擊者不能僞造 Token,就無法盜用您的雲服務流量。
控制台
- 登入 音視訊通信 RTC 控制台 。
- 在左側導航欄,單擊接入工具。
- 在 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 天,代表令牌有效時間為目前時間 + 所選擇小時數。 |
- 單擊生成。
産品百科 |Ali RTC 生成 Token 的兩種方式
服務端
采用服務端計算 Token 的方案,可以最大限度地保障計算 Token 的密鑰不被洩露,具體的流程如下所示。
- 您的 App 在調用 SDK 的初始化函數之前,首先要向您的伺服器請求 Token。
- 您的伺服器根據如下參數計算 Token。
token = sha256(appId + appKey + channelId + userId + nonce + timestamp)
- 伺服器将計算好的鑒權資訊傳回給您的 App。
- 您的 App 将獲得的鑒權資訊通過特定 API 傳遞給 SDK。
- SDK 将鑒權資訊送出給阿裡雲伺服器進行校驗。
- 阿裡雲校驗鑒權資訊,确認合法性。
- 校驗通過後,即可開始提供實時音視訊服務。
說明 | |
應用 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 的唯一性。 |
令牌随機碼,由 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 生成。實際算法為 |
GSLB | 服務位址,該參數是數組類型,目前請使用:["https://rgslb.rtc.aliyuncs.com"],請您通過業務伺服器下發到用戶端 SDK,不建議您将該位址固化在用戶端代碼。 |
服務端生成 Token 的簽名算法為 SHA256,您可以參見如下版本的生成 Token 函數:
- Golang 程式執行個體請檢視
函數,詳情請參見 Golang DemoCreateToken
- Java 程式執行個體請檢視
Java DemocreateToken
- Python 程式執行個體請檢視
Python Democreate_token
- C# 程式執行個體請檢視
C# DemoCreateToken
- Nodejs 程式執行個體請檢視
Node.js DemoCreateToken
- PHP 程式執行個體請參檢視
PHP DemoCreateToken
「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。