Agora 安全令牌生成 (Golang)



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

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

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

谢谢

您所指Role是一个任意结构,用于建立可用于设置权限的可能用户角色的示例层次结构。

如果你看一下 Agora 代币生成器(Golang 示例(,在第 42 行,它使用 Role 来分配一组权限。

if (role == RoleAttendee) || (role == RolePublisher) || (role == RoleAdmin) {
token.AddPrivilege(accesstoken.KPublishVideoStream, privilegeExpiredTs)
token.AddPrivilege(accesstoken.KPublishAudioStream, privilegeExpiredTs)
token.AddPrivilege(accesstoken.KPublishDataStream, privilegeExpiredTs)
}

在代码中,每个角色都获得相同的权限(这在生产环境中通常无用(,因此您需要更新代码以具有所需的任何用户角色,以便为该令牌设置适当的权限。

这里设置的权限是为了让 Agora 后端知道用户可以在频道中执行哪些操作,从基本joinCahnnelpublishStream再到publishVideoCdn

可用权限:

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( 才能请求在您的账户上启用它。

相关内容

  • 没有找到相关文章

最新更新