全部文档

( 最近更新时间:2020-04-28 19:00:00 )

# 功能描述

Token代表一个用户在融云的唯一身份标识, 客户端在使用融云即时通讯实时音视频功能前必须连接融云服务器, 而每次连接融云服务器都需要向融云提交 Token 以便验证身份。

获取 Token 接口,是使用融云即时通讯或者实时音视频,都必须要调用的接口,也是开发者服务端 唯一必须要调用的接口。 获取 Token 即表示一个用户在融云完成注册,开发环境下注册用户上限为 100 个,生产环境下注册用户不超过 100 可免费使用,超过 100 需要开通 IM 商用版 (opens new window),达到上限时将返回错误码 2007。

# 获取流程

应用获取 Token 后,根据情况可选择在应用本地保留当前用户的 Token,同时还需要实现重新向服务器获取 Token 的代码逻辑,以避免 Token 失效,流程如下:

App -> App: 获取当前登录的 UserId App -> AppServer: 通过 UserId 请求 Token AppServer -> RongCloudServer: 通过 UserId 请求 Token RongCloudServer --> AppServer: 返回 Token AppServer -> AppServer: 数据库存储 Token AppServer --> App: 返回 Token App -> App: 本地存储 App -> RongCloudServer: 通过 connect 方法携带 Token 连接到聊天服务器

Token 有效期可在开发者后台进行配置,默认为永久有效。后续登录过程中,就不必再向融云请求 Token,由 App Server 直接提供之前保存过的 Token。

App -> AppServer: 通过当前录登 UserId 请求 Token AppServer --> App: 数据库获取 Token 后,返回 Token App -> RongCloudServer: 获取后通过 connect 方法附带 Token 连接到聊天服务器

如果您的 App 是免登录设计,也可以将 Token 保存在 App 本地(注意保证本地数据存储安全),直接登录。

App -> App: 获取当前登录的 UserId App --> App: 返回本地存储的 Token App -> RongCloudServer: 通过 connect 方法附带 Token 连接到聊天服务器

# 实现方法

# 功能接口

请求地址: https://数据中心域名/user/getToken.json

请求方法: POST

调用频率: 无限制

签名规则: 所有请求融云服务端 API 接口的请求均需要进行规则校验,详细请参考 通用 API 接口签名规则

# 参数说明

输入参数

参数 类型 必传 说明
userId String 请求的用户 Id,应用内唯一标识,重复的用户 Id 将被当作为同一用户,支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 64 字节。
name String 用户名称,最大长度 128 字节。用来在 Push 推送时显示用户的名称,重新获取 Token 传入新的名称后,将覆盖之前的用户名称。
portraitUri String 用户头像 URI,最大长度 1024 字节。

返回结果

返回值 返回类型 说明
code Int 返回码,200 为正常。
token String 用户 Token,可以保存应用内,长度在 256 字节以内,Token 中携带 IM 服务动态导航地址,开发者不需要进行处理,正常使用即可。
userId String 用户 Id,与输入的用户 Id 相同。
# 代码示例

Request:

POST /user/getToken.json HTTP/1.1
Host: api-cn.ronghub.com
App-Key: uwd1c0sxdlx2
Nonce: 14314
Timestamp: 1408710653491
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded

userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg
已复制
1
2
3
4
5
6
7
8
9

Response:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{"code":200, "userId":"jlk456j5", "token":"sfd9823ihufi"}
已复制
1
2
3
4

# 注意事项

1、融云不管理任何用户信息,用户的注册仅需通过用户 ID 交换 Token 即可。

2、同一个用户 ID,可以多次获取 Token,在有效期内都可以正常使用,Token 超过有效期后失效,需重新获取。

3、开发者后台刷新 App Secret 后,以前获取的 Token 失效,需要用新的 App Secret 生成签名,重新获取 Token。

4、注册用户,获取 Token 时,传输的名称(name)和 头像(portraitUri),仅为移动端远程推送提醒使用,如需变更名称和头像信息,可通过重新获取 Token 进行覆盖,也可通过更新用户信息的方法进行变更。

5、由于单聊只要知道接收方 userId,即可发送消息,强烈建议开发者注册用户时,不要使用连续的 userId,以防止被恶意利用。

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助