浏览 平台 API
服务端 API

获取用户 Token

复制

使用 获取用户 Token 从可信后端调用 OpenIM 认证 REST 接口。由可信后端为指定用户和登录终端签发用户 Token,客户端使用该 Token 登录 SDK。 请先在接入准备中配置 API 地址;管理员 Token 只能保存在可信后端服务中,不能下发到客户端或写入前端代码。

HTTP 请求

POST {API_ADDRESS}/auth/get_user_token

请求示例

curl --request POST "${API_ADDRESS}/auth/get_user_token" \
  --header "Content-Type: application/json; charset=utf-8" \
  --header "operationID: ${OPERATION_ID}" \
  --header "token: ${ADMIN_TOKEN}" \
  --data-raw '{
  "platformID": 2,
  "userID": "user_001"
}'

参数

此接口通过请求头传入链路追踪信息,通过 JSON 请求体传递业务参数。除 router 白名单接口外,管理端接口还需要在请求头中携带 APP 管理员 Token。

请求头

Header是否必填类型说明
operationIDstring每次请求的唯一链路追踪 ID,建议由后端生成并写入日志。
tokenstringAPP 管理员 Token;仅保存在可信后端服务中。
Content-Type: application/jsonstring请求体为 JSON 时必须设置。

请求体

{
  "platformID": 2,
  "userID": "user_001"
}
参数名是否必填类型说明
platformIDint用户登录终端类型,参见用户模块的 PlatformID;不能传管理员平台 ID。
userIDstring需要签发 Token 的普通用户 ID。

响应

请求被 OpenIM 正常处理时通常返回 200 OK。业务是否成功以响应体中的 errCode 为准;errCode === 0 表示成功,非 0 表示业务错误。

{
  "errCode": 0,
  "errMsg": "",
  "errDlt": "",
  "data": {
    "token": "admin_or_user_token_sample",
    "expireTimeSeconds": 7776000
  }
}

响应参数

参数名类型说明
errCodeint业务错误码,0 表示成功。
errMsgstring错误简要信息,成功时通常为空。
errDltstring错误详细信息,成功时通常为空。
dataobject接口返回数据。
data.tokenstring签发的用户 Token。
data.expireTimeSecondsintToken 有效期,单位秒。

错误

如果请求失败,OpenIM 返回错误对象。更多错误码说明见错误码

{
  "errCode": 1004,
  "errMsg": "RecordNotFoundError",
  "errDlt": ": [1004]RecordNotFoundError"
}
错误场景可能原因处理方式
鉴权失败secret 不正确、token 缺失或 Token 已过期。检查服务端配置,重新获取 APP 管理员 Token。
链路追踪困难operationID 缺失或在大量请求中重复使用。为每次请求生成独立 operationID,并在服务端日志中保留。
参数校验失败请求体字段类型、必填字段或终端类型不符合接口要求。对照请求体参数表和限制说明检查字段。

权限和限制

  • 为指定普通用户签发新的用户 Token,并写入服务端 Token 状态。
  • 必须使用 APP 管理员 Token 调用。
  • platformID 不能是管理员平台 ID。
  • userID 不能是 APP 管理员账号,也不能是通知类应用账号。
  • 目标用户必须已注册到 OpenIM。

相关页面