关于token:声网-Token-鉴权机制以及常见的问题
Token鉴权是什么?Token也称为动静密钥,是在退出频道时用于校验用户权限的一组字符串;鉴权是指在用户拜访你的零碎前,对其进行身份校验。用户在应用声网服务,如退出音视频通话或登录信令零碎时,声网会应用 Token 对其鉴权。 咱们为这种形式提供了一个较为形象的比喻,即: 某个展览馆须要游客实名认证后,获取专属入场券才可参观。游客在实现实名认证后能够获取到具备有效期限度的专属入场券,在进场时提供在有效期内的入场券,方能进场。其中: ● 展览馆相当于声网的服务,即音视频频道或信令零碎等;●专属入场券相当于 Token;●实名认证步骤相当于联合 声网 AppID、频道号、用户 ID 等信息 获取到专属 Token 的步骤;●进场时校验入场券相当于鉴权,即校验 Token 是否和 声网 AppID、频道号、用户 ID 等信息匹配,且在有效期内。 声网的产品和服务中大部分采纳Token 鉴权的形式。上面,咱们针对如何生成和应用 Token,以及 Token 鉴权中常见的问题进行具体的解说。 如何生成和应用Token?2.1 Token 鉴权原理在理解如何生成和应用Token 前,须要先理解 Token 鉴权的原理。 如图所示,共分为9个步骤: 1.客户端依据须要,向 app 服务端申请 Token2.App 服务端生成并返回 Token3.客户端以 UID、频道名以及获取到的 Token 退出频道4.声网平台读取该 Token 中蕴含的信息,并进行校验5.客户端收到退出频道胜利回调,并获取用户 UID6.Token 最大有效期为 24 小时。当即将过期时,客户端会收到 Token 行将过期的回调7.此时,如果客户端须要持续进行音视频互动,须要申请新的 Token8.App 服务端生成并返回 Token9.客户端更新 Token这个过程中,用户须要自行实现步骤1、2、3、7、8、9 的代码逻辑。 其中,对应的Token 蕴含以下信息: ● 你在声网控制台创立我的项目时生成的 App ID● 频道名● 用户 ID● 用户权限,如是否能发流或收流● Token 的过期工夫 2.2 申请与生成Token能够看到,在用户退出频道前,客户端须要先向服务器申请Token,并在 服务器 生成 Token,且 Token 必须与 须要退出频道的用户所对应的 AppID、频道名、用户 ID(UID)信息、用户权限(是否能发流或收流) 一一对应,并且确保生成的 Token 在有效期内。而后能力以 UID、频道号 和 Token 退出对应频道。 向服务器申请Token,能够通过向服务器发送 GET 申请等形式自行实现,以下文章以供参考: ● 部署 Token 服务器(官网文档):https://docs.agora.io/cn/live-streaming-premium-4.x/token_ser...●用Token-Flutter 连贯 Agora (2021-09-15) https://www.rtcdeveloper.cn/cn/community/blog/22929● 应用 Swift 部署声网 Token 服务器 (2022-10-27): https://www.rtcdeveloper.cn/cn/community/blog/24981●在NET Core 上建设 Agora AccessToken 服务 (2020-11-14):https://www.rtcdeveloper.cn/cn/community/blog/19790● 如何用 GoLang 为声网 Agora 利用构建 Token 服务器 (2020-12-09):https://www.rtcdeveloper.cn/cn/community/blog/20102● 如何应用 NodeJS 为声网 Agora 利用构建 Token 服务器 (2020-12-03): https://www.rtcdeveloper.cn/cn/community/blog/20024● 应用 Java 构建 Agora 令牌服务器 (2021-02-07):https://www.rtcdeveloper.cn/cn/community/blog/20709● 用 Java 构建声网令牌服务器 (2023-01-10): https://www.rtcdeveloper.cn/cn/community/blog/25430 ...