Token本质是使用 AppKey 对 AppID,UserID,Token 的过期时间三个字段进行对称性加密。客户端所有跟 IM 服务端交互的请求,都需要携带Token,IM 服务端会解密 Token 从而获取请求方的身份信息,一旦解密失败或者 Token 过期,则会请求失败。
鉴权全流程如下。
客户端根据需要,向应用服务端申请 Token。
应用服务端生成 Token。
应用服务端将 Token 下发到客户端。
客户端使用获取到的 Token 向服务端发起请求。
IM 服务端验证 Token。
应用客户端收到来自 IM SDK 的回调,获取操作结果(成功/失败)。
你可以指定 AppId,UserId 和Token过期时间调用生成 Token接口生成 Token。
推荐使用这种方式生成 Token,可满足大部分场景,接入简单且与语言无关。
你可以指定 AppId,UserId,Token过期时间和 AppKey 参考以下示例代码在服务端本地生成 Token(当前只提供 Go 和 Java 版本的示例代码)。
注意这里的AppKey需要保存在服务端,避免出现泄漏的情况。
此方式在业务服务端本地生成 Token,可减少一次请求,从而降低业务服务端生成 Token 接口的整体时延和开销。