研究Agora的令牌生成(nodejs?platform=Node.js)。
在生成令牌时,我们需要提供用户的角色。在Go API中有4种角色定义:与会者、发布者、订阅者和管理人员。
如果使用这4个角色中的任何一个生成令牌,那么它们有什么不同呢?与会者与订阅者有何不同,发布者与管理员有何不同?
谢谢
发布于 2020-06-26 02:47:25
您所指的Role是一个创建的任意结构,用于建立可用于设置特权的可能的用户角色的示例层次结构。
如果您查看Agora (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到publishStream到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)才能在您的帐户上启用它。
https://stackoverflow.com/questions/62581036
复制相似问题