- 文档首页
实时音视频
实时音视频
开发指南
Token 鉴权
使用 Token 鉴权
使用 Token 鉴权
客户端在加入 RTC 房间或登录实时消息服务时,都必须携带有效的 Token 完成鉴权。此 Token 由你的应用服务端根据 RTC AppID、AppKey、RoomID、UserID、时间戳等参数实时生成。
RTC 服务端在收到进房请求时,会校验进房请求中携带的 Token 信息,如果校验不成功,进房会失败。
鉴权流程
整个鉴权生命周期分为两个阶段:首次进房和 Token 过期更新。
说明
您需要自行实现步骤 1、2、3、4、11 的代码逻辑。
- 应用服务端根据 AppID、RTC AppKey、RoomID、UserID、时间戳等信息生成 Token。
加入房间时设置的 uid 和 roomid 需与用于生成 Token 的 uid 和 roomid 保持一致,否则会加入房间失败,并收到错误提示为 ERROR_CODE_INVALID_TOKEN 的 onRoomStateChanged 回调。
- 应用客户端收到来自 RTC SDK 的回调,获取加入房间的结果(成功/失败)。
- 若生成 Token 时设置了有效期,当 SDK 检测到 Token 的进房权限将在 30 秒内过期时,触发 onTokenWillExpire 回调。
Token 过期后,用户将被移出房间,并收到 ERROR_CODE_INVALID_TOKEN 回调,错误码是 ERROR_CODE_TOKEN_EXPIRED。需要在申请新的 Token 之后调用 JoinRoom 加入房间。
- 此时,如果客户端需要继续进行音视频通话,需要申请新的 Token。
- 调用 updateToken 接口,使用新的 Token,更新 Token。
生成 Token
生成正式 Token
在您的应用服务端实现 Token 的生成,可以参考以下示例代码(包含了多种语言):
以 Golang 为例:
// 确保通话时使用的 appID, roomID 和 userID 与用于生成 Token 的相同,否则会导致进房失败。
roomID = "room" // 生成用于登录实时消息服务的 Token 时传空值
t := AccessToken.New(appID, appKey, roomID, userID)
// 添加此 Token 的有效时间,24 小时过期。过期后,你无法使用此 Token 进房。
t.ExpireTime(time.Now().Add(time.Hour * 24))
t.AddPrivilege(AccessToken.PrivSubscribeStream, time.Time{})
t.AddPrivilege(AccessToken.PrivPublishStream, time.Time{})
token,err := t.Serialize()
生成通配 Token
在需要频繁切换房间的场景下,可以使用通配 Token,解决频繁请求 Token 可能造成的进房延误和 Token 服务端压力过大等问题。同一用户使用通配 Token 可以加入不同的 RTC 房间。
- 生成方法:通配 Token 与普通 Token 生成方式一致,仅需要将 roomID 参数设置为 "*"。
- 在使用通配 Token 加入不同房间时,房间内的 userID 不可重复。
- 仅以下版本的 RTC SDK 支持使用通配 Token:
- Electron、Flutter、Unity SDK:所有版本都支持
- 通配 Token 权限较高,一旦泄露,可能导致非法用户进入任意房间。建议仅在必要场景下使用。
- 建议仅在通配 Token 中添加订阅流权限,不添加发布流权限;当用户需要在特定房间发言时,再为该房间单独生成一个包含发布权限的 Token,并通过 updateToken 接口动态更新。
- 通配 Token 过期时,应获取服务端重新生成的通配 Token 更新相关权限。
生成临时 Token
在开发和测试阶段,为快速验证业务逻辑,你可以在 RTC 控制台上生成临时 Token,无需在应用服务端部署 Token 生成服务。
临时 Token 有效期仅为 7 天且安全性低,仅适用于测试阶段,严禁用于生产环境。项目正式上线前,请务必切换为由你应用服务端生成的正式 Token。
- 测试音视频通话时:当需要多个设备加入同一个房间进行通话时,请为每个设备都生成一个独立的 Token,且房间 ID 需相同、用户 ID 必须不同。
- 仅测试实时消息时:房间 ID 可填写任意值,用户 ID 需为目标登录用户。
校验 Token
你可以在 RTC 控制台校验已生成的 Token 的正确性和有效期。
操作步骤:
- 输入您的 Token、RoomId、UserId,单击开始校验。
-
更换 AppKey
生成 Token 时要使用 AppKey。为保障您的应用安全(比如应对 AppKey 意外泄露的风险),RTC 提供了主/副 AppKey 的安全轮换机制。详细说明及操作,参见更换 AppKey。 Token 使用常见问题
最近更新时间:2026.09.21 16:24:27