首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Agora安全令牌生成(Golang)

Agora安全令牌生成(Golang)
EN

Stack Overflow用户
提问于 2020-06-25 17:27:39
回答 1查看 319关注 0票数 0

研究Agora的令牌生成(nodejs?platform=Node.js)。

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

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

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-26 02:47:25

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

如果您查看Agora (Golang实例),它在第42项上使用角色分配一组特权。

代码语言:javascript
运行
复制
    if (role == RoleAttendee) || (role == RolePublisher) || (role == RoleAdmin) {
        token.AddPrivilege(accesstoken.KPublishVideoStream, privilegeExpiredTs)
        token.AddPrivilege(accesstoken.KPublishAudioStream, privilegeExpiredTs)
        token.AddPrivilege(accesstoken.KPublishDataStream, privilegeExpiredTs)
    }

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

这里设置的特权是为了让Agora后端知道用户可以在通道中执行哪些操作,从基本的joinCahnnelpublishStreampublishVideoCdn

可获得的特权:

代码语言:javascript
运行
复制
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)才能在您的帐户上启用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62581036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档