什么是 Token 鉴权
Token 鉴权是一种用于验证用户身份和授权的机制。在计算机网络中,鉴权(Authentication)是指对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程。具体来说,Token 是服务端生成的一串加密字符串,用户在登录成功后生成并返回给客户端。之后客户端的每次请求都会通过 GET/POST/Header 等方式携带 Token,服务端通过验证 Token 的有效性来完成鉴权。
Token 鉴权的一些要点
- 无状态协议:
- HTTP 是一种无状态协议,每次请求和响应之间没有关联。
- Token 鉴权解决了 HTTP 无状态的问题,允许客户端在请求中携带身份信息。
- Token 生成和验证:
- 用户登录成功后,服务端生成一个 Token 并返回给客户端。
- 客户端在每次请求时将 Token 携带到服务端,服务端验证 Token 的有效性。
- Token 的特点:
- Token 不存储在服务端,而是由客户端保存。
- Token 可以作为请求头或请求体的一部分发送。
- Token 不依赖于 Cookie,因此可以更灵活地传递。
总之,Token 鉴权是一种轻量且高效的身份验证方式,广泛应用于现代应用程序的 API 鉴权。
ZEGO SDK 有哪些 Token 鉴权方式
ZEGO SDK 的 Token 鉴权,分为 基础鉴权 Token
、权限认证 Token
,开发者可以根据自己的业务场景选择合适的鉴权方式。
鉴权是指验证用户是否拥有访问系统的权限,来避免因权限控制缺失或操作不当引发的安全风险问题,ZEGO 通过 Token(包括基础鉴权 Token 和权限认证 Token) 对用户进行鉴权。
鉴权方式 | 描述 | 应用场景 |
---|---|---|
基础鉴权 Token | 开发者在登录房间时必须带上 Token 参数,来验证用户的合法性。 | 基础鉴权 Token 为 Token 的基本能力,用于业务的简单权限验证场景,绝大多数情况下生成该 Token 即可。 |
权限认证 Token | 为了进一步提高安全性开放了房间 ID 和推流 ID 这两个权限位,可以验证登录房间的 ID 和推流 ID。 | 房间 ID 和推流 ID 权限位的一般使用场景如下:房间有普通房间和会员房间的区别,需要控制非会员用户登录会员房间。语聊房或秀场直播中,需要控制推流用户和麦上用户的一致,防止“幽灵麦”现象,即在房间里听到了非麦上用户声音的情况。狼人杀等发言游戏,需要防止应用被黑客破解之后,黑客可以使用其他用户 ID 登录同一房间,获取到游戏进行的信息进行作弊,影响正常用户的游戏体验。 |
基础鉴权 Token
默认开通相关权限,权限认证 Token
需要联系 ZEGO 技术支持开通相关权限。
不同平台的 SDK 支持使用 Token 鉴权功能的版本有所不同(参考如下版本号),您可以通过 getVersion 接口查询您的当前 SDK 版本,确认是否支持使用该功能。
- iOS/Android/macOS/Windows/Unity3D:2.17.0 及以上版本
- Flutter:2.17.1 及以上版本
- React Native:0.17.0 及以上版本
- uni-app:1.5.0 及以上版本
- Electron:2.17.3 及以上版本
- Linux(C++):2.17.3 及以上版本
实现流程
请根据您的业务开发平台,在通信能力下面的基础功能可找到相关文档,比如 iOS 平台 “使用 Token 鉴权”,这里不做详细介绍。