oauth.refreshToken
此接口为平台应用(APP)服务端实现,由SUD OpenPaaS服务端调用。
刷新访问令牌(refresh_token)。refresh_token过期后,需重新走授权流程。
调用方式:
- HTTPS 调用
HTTPS 调用
http
POST {refresh_token_webhook}请求参数 - Header
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| timestamp | long | 是 | 毫秒时间戳,遵循通用防重放规则 | |
| nonce | string | 是 | 32位以内随机字符串,遵循通用防重放规则 | |
| sign | string | 是 | RSA-SHA256签名,遵循通用签名规则 | |
| client_secret | string | 是 | 平台应用(APP)分配给SUD的应用密钥(应用级鉴权密钥,仅放在Header传递) |
请求参数 - Body
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| client_id | string | 是 | 平台应用(APP)分配给SUD的应用ID | |
| grant_type | string | 是 | 固定值:refresh_token(刷新令牌模式) | |
| refresh_token | string | 是 | 从 {access_token_webhook} 接口获取的刷新令牌 |
返回值
Object
返回的 JSON 数据包
| 属性 | 类型 | 说明 |
|---|---|---|
| ret_code | integer | 响应码:0 表示成功,非0 表示失败 |
| ret_msg | string | 响应描述信息:成功返回 "success",失败返回具体错误原因 |
| data | object | 业务数据体(仅 ret_code=0 时返回有效数据) |
| data.access_token | string | 平台应用(APP)颁发的访问令牌,后续拉取游戏/厂商数据接口需携带此令牌鉴权 |
| data.refresh_token | string | 刷新令牌,用于 access_token 过期后重新获取新令牌(有效期长于access_token) |
| data.expires_in | integer | access_token 有效期(单位:秒),默认7200秒(2小时),以接口返回值为准 |
| data.cp_id | string | 平台侧OAuth层开发者/厂商唯一标识,与业务层cp_id一一映射 |
ret_code 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| 0 | 请求成功 | |
| 40030 | invalid sign,检查签名算法及公私钥是否匹配 | |
| 40031 | invalid refresh_token,刷新令牌错误或不属于该 client_id | |
| 42002 | refresh_token expired,刷新令牌已过期,需重新走授权流程 |
cURL 请求
bash
curl -X POST \
{refresh_token_webhook} \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'timestamp: 1668512806000' \
-H 'nonce: abcdef1234567890' \
-H 'sign: YOUR_RSA_SIGNATURE' \
-H 'client_secret: YOUR_CLIENT_SECRET' \
-d '{
"client_id": "YOUR_CLIENT_ID",
"grant_type": "refresh_token",
"refresh_token": "YOUR_REFRESH_TOKEN"
}'成功返回
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 7200,
"cp_id": "dev_123456789"
}
}错误返回
json
{
"ret_code": 42002,
"ret_msg": "refresh_token expired"
}