Agora 安全令牌生成 (Golang)

查看 Agora 的 Token 生成(https://docs.agora.io/en/Interactive%20Broadcast/token_server_nodejs?platform=Node.js)。

我们需要在生成令牌时提供用户的角色。在 Go API 中有 4 个角色定义:参与者、发布者、订阅者和管理员。

如果令牌是使用 4 个角色中的任何一个生成的,它们有何不同?与会者与订阅者有何不同,发布者与管理员有何不同?

谢谢


智慧大石
浏览 304回答 1
1回答

至尊宝的传说

您所指的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 uint16const (    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 ) 以请求在您的帐户上启用它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go