使用Token鑒權(quán)
RTC為您提供兩種生成Token的方式。通過閱讀本文,您可以了解控制臺(tái)和服務(wù)端生成Token的方法。
前提條件
您已經(jīng)開通RTC服務(wù)。具體操作,請(qǐng)參見開通服務(wù)。
您已經(jīng)創(chuàng)建好應(yīng)用。具體操作,請(qǐng)參見創(chuàng)建應(yīng)用。
您已經(jīng)獲取AppKey。具體操作,請(qǐng)參見查詢指定應(yīng)用AppKey。
背景信息
Token是阿里云設(shè)計(jì)的一種安全保護(hù)簽名,目的是為了阻止惡意攻擊者盜用您的云服務(wù)使用權(quán)。您需要在相應(yīng)SDK的登錄函數(shù)中提供AppID、UserID、ChannelId和Token信息。其中AppID用于標(biāo)識(shí)您的應(yīng)用,UserID用于標(biāo)識(shí)您的用戶,而Token則是基于算法計(jì)算得出。因此,攻擊者很難通過偽造Token盜用您的云服務(wù)流量。
注意事項(xiàng)
通過控制臺(tái)生成的Token為臨時(shí)Token,一般用于測(cè)試使用。如果需要正式使用,請(qǐng)使用服務(wù)端生成Token。
控制臺(tái)生成Token
在左側(cè)導(dǎo)航欄選擇接入工具,進(jìn)入接入工具界面。
服務(wù)端生成Token
相對(duì)于控制臺(tái)生成Token,服務(wù)端生成Token可以最大限度地保障計(jì)算Token的密鑰不被泄露,具體的流程如下所示:
您的App在調(diào)用SDK的初始化函數(shù)之前,首先要向您的服務(wù)器請(qǐng)求Token。
您的服務(wù)器根據(jù)阿里云提供的AppToken工具計(jì)算Token。
您的服務(wù)器將計(jì)算好的鑒權(quán)信息返回給您的App。
您的App將獲得的鑒權(quán)信息通過您的業(yè)務(wù)API傳遞給SDK。
SDK將鑒權(quán)信息提交給阿里云服務(wù)器進(jìn)行校驗(yàn)。
阿里云校驗(yàn)鑒權(quán)信息,確認(rèn)合法性。
校驗(yàn)通過后,即可開始提供實(shí)時(shí)音視頻服務(wù)。
參數(shù) | 說明 |
AppID | 應(yīng)用ID,通過控制臺(tái)創(chuàng)建。 |
UserID | 您的唯一標(biāo)識(shí),由AppServer生成。同一個(gè)UserId的用戶在其他端登錄,先入會(huì)的端會(huì)被后入會(huì)的端踢出房間。 由大小寫字母、數(shù)字組成,最大64字節(jié)。例如:2b9be4b25c2d38c409c376ffd2372be1。 |
ChannelID | 頻道ID,AppServer生成。不支持設(shè)置ChannelID為0,并且ChannelID不可以重復(fù),需要保持ChannelID的唯一。由大小寫字母、數(shù)字、短劃線(-)組成,最大64字節(jié)。例如:181-218-3406。 |
Token | 加入頻道的Token,由AppServer生成。 |
服務(wù)端生成Token的方法,您可以參見如下示例:
Java程序?qū)嵗?qǐng)查看
AppToken
類,更多信息,請(qǐng)參見Java Demo。Go程序?qū)嵗?qǐng)查看
CreateAppToken
函數(shù),更多信息,請(qǐng)參見Go Demo。C#程序?qū)嵗?qǐng)查看
Program
函數(shù),更多信息,請(qǐng)參見C# Demo。Python3程序?qū)嵗?qǐng)查看
app_token
函數(shù),更多信息,請(qǐng)參見Python3 Demo。Python2程序?qū)嵗?qǐng)查看
app_token
函數(shù),更多信息,請(qǐng)參見Python2 Demo。PHP程序?qū)嵗?qǐng)查看
index
函數(shù),更多信息,請(qǐng)參見PHP Demo。Node.js程序?qū)嵗?qǐng)查看
index
函數(shù),更多信息,請(qǐng)參見Node.js Demo。