本文帮助需要从老版 SDK 升级高版本的用户升级到最新的动态秘钥 Token。

2.1.0 版本之前,每一个鉴权服务都需要一个独立的秘钥(key)。比如:

  • joinChannel 需要 channel key

  • setClientRole 需要 permission key

2.1.0 版本用一个 Token 包括了所有的服务权限信息。Token 参数仅在 joinChannel时被传入;需要更新权限时调用 renewToken 即可。

1. 客户端 API 更新日志

Android 平台 API 更新对照表

v2.0.2 v2.1.0
public int joinChannel(String channelKey, String channelName, String optionalInfo, int optionalUid); public int joinChannel(String token, String channelName, String optionalInfo, int optionalUid);
public int setClientRole(int role, String permissionKey) int setClientRole(int role)
public void onRequestChannelKey(); public void onRequestToken();
public int renewChannelKey(const char* channelKey) public int renewtoken( const char* token)

iOS 平台 API 更新对照表

v2.0.2 v2.1.0
joinChannelByKey:channelName:info:uid:joinSuccess: joinChannelByToken:channelId:info:uid:joinSuccess:
setClientRole:withKey: setClientRole:
rtcEngineRequestChannelKey: rtcEngineRequestToken:
renewChannelKey: renewToken:

macOS 平台 API 更新对照表

v2.0.2 v2.1.0
joinChannelByKey:channelName:info:uid:joinSuccess: joinChannelByToken:channelId:info:uid:joinSuccess:
setClientRole:withKey: setClientRole:
rtcEngineRequestChannelKey: rtcEngineRequestToken:
renewChannelKey: renewToken:

Windows 平台 API 更新对照表

v2.0.2 v2.1.0
public int joinChannel(const char* channelKey, const char* channel, const char* info, uid_t uid) public int joinChannel(String token, String channelName, String optionalInfo, int optionalUid);
public int setClientRole(CLIENT_ROLE_TYPE role, const char* permissionKey); int setClientRole(int role)
public virtual void onRequestChannelKey(); public void onRequestToken();
public int renewChannelKey(const char* channelKey) public int renewtoken( const char* token)

Web 平台 API 更新对照表

v2.3.1 v2.4.0
client.join(channelKey, channel, uid, onSuccess, onFailure) client.join(token, channel, uid, onSuccess, onFailure)
client.renewChannelKey client.renewToken

2. 服务器端 Token 生成字段更新对照表

下表比较了生成 Dynamic Key 所需字段和生成 Token 所需字段:

Dynamic Key Token 说明
App ID App ID
App 证书 App 证书
channelName channelName
unixTs/Ts N/A 删除了授权时间戳
uid uid
expiredTs/timeputFromNow expiredTs/timeputFromNow 保留了服务到期时间
randomint/r randomint/r
N/A Role 增加了角色及对应权限。更多详情请见:Token 的角色权限