亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Agora 安全令牌生成 (Golang)

Agora 安全令牌生成 (Golang)

Go
智慧大石 2022-06-13 15:31:16
查看 Agora 的 Token 生成(https://docs.agora.io/en/Interactive%20Broadcast/token_server_nodejs?platform=Node.js)。我們需要在生成令牌時提供用戶的角色。在 Go API 中有 4 個角色定義:參與者、發布者、訂閱者和管理員。如果令牌是使用 4 個角色中的任何一個生成的,它們有何不同?與會者與訂閱者有何不同,發布者與管理員有何不同?謝謝
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

您所指的Role是一個任意結構,用于建立可用于設置權限的可能用戶角色的示例層次結構。


如果您查看 Agora Token Builder(Golang 示例),在第 42 行它使用角色分配一組權限。


    if (role == RoleAttendee) || (role == RolePublisher) || (role == RoleAdmin) {

        token.AddPrivilege(accesstoken.KPublishVideoStream, privilegeExpiredTs)

        token.AddPrivilege(accesstoken.KPublishAudioStream, privilegeExpiredTs)

        token.AddPrivilege(accesstoken.KPublishDataStream, privilegeExpiredTs)

    }

在代碼中,每個角色都獲得相同的權限(這在生產環境中通常沒用),因此您需要更新代碼以擁有您想要的任何用戶角色,以便為該令牌設置適當的權限。


這里設置的權限是為了讓 Agora 后端知道用戶可以在頻道中執行哪些操作,范圍從基本joinCahnnel到.publishStreampublishVideoCdn


可用特權:


type Privileges uint16


const (

    KJoinChannel        = 1

    KPublishAudioStream = 2

    KPublishVideoStream = 3

    KPublishDataStream  = 4


    KPublishAudiocdn           = 5

    KPublishVideoCdn           = 6

    KRequestPublishAudioStream = 7

    KRequestPublishVideoStream = 8

    KRequestPublishDataStream  = 9

    KInvitePublishAudioStream  = 10

    KInvitePublishVideoStream  = 11

    KInvitePublishDataStream   = 12


    KAdministrateChannel = 101

    KLoginRtm            = 1000

)

注意:默認情況下不強制執行令牌特權,因此您必須提交 Jira 票證 ( https://agora-ticket.agora.io ) 以請求在您的帳戶上啟用它。


查看完整回答
反對 回復 2022-06-13
  • 1 回答
  • 0 關注
  • 325 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號