换取用户凭证

功能

用户先在接入方小程序里登录。小鹅不使用这套登录态。这个接口让接入方后台用自己的用户 ID 向小鹅换一张用户 JWT。之后 SDK 的每次请求都带这张 JWT。接入方控制台的登录令牌不能代替它。

JWT 有效期 15 分钟。接口返回 401 时,SDK 会用 forceRefresh 再要一次 token,并只重试这一次请求。同一用户可以换到新 JWT,未过期的旧 JWT 仍然有效。

接口

POST /open/api/v1/sdk/tokens

鉴权:接入方后台 HMAC。签名规则见接口说明。

调用方:接入方后台。小程序和 SDK 不持有 AK/SK。

请求体

属性类型必填说明
external_user_idstring必填,最长 128这个用户在接入方系统里的唯一 ID。小鹅用它识别是谁。不要传控制台账号。

返回值

成功时 code 为 0,下面的字段在 data 里。

属性类型必填说明
access_tokenstring是小鹅签发的用户 JWT。getToken 要返回这个字符串本身,不要把整段 JSON 交给 SDK。
expires_innumber是有效秒数,当前为 900,也就是 15 分钟。
token_typestring是固定为 Bearer。SDK 请求头写成 Authorization: Bearer access_token。

示例

curlbash
# 先设置 CHANNEL_ACCESS_KEY、CHANNEL_SECRET_KEY,并按接口说明计算 signature
curl --request POST 'https://api.channel.suiinn.com/open/api/v1/sdk/tokens' \
  --header 'X-Channel-Key: $CHANNEL_ACCESS_KEY' \
  --header 'X-Channel-Timestamp: $timestamp' \
  --header 'X-Channel-Nonce: $nonce' \
  --header 'X-Channel-Signature: $signature' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "external_user_id": "your-user-id"
}'