Skip to content

oauth.accessToken

此接口为平台应用(APP)服务端实现,由SUD OpenPaaS服务端调用。

获取访问令牌(access_token)。

调用方式:

  • HTTPS 调用

HTTPS 调用

http
POST {access_token_webhook}

请求参数 - Header

属性类型默认值必填说明
timestamplong毫秒时间戳,遵循通用防重放规则
noncestring32位以内随机字符串,遵循通用防重放规则
signstringRSA-SHA256签名,遵循通用签名规则
client_secretstring平台应用(APP)分配给SUD的应用密钥(应用级鉴权密钥,仅放在Header传递)

请求参数 - Body

属性类型默认值必填说明
client_idstring平台应用(APP)分配给SUD的应用ID
grant_typestring固定值:authorization_code(授权码模式)
codestring/api/open/oauth/authorize 接口获取的授权码
redirect_uristring回调地址,需与申请授权码时填写的地址完全一致

返回值

Object

返回的 JSON 数据包

属性类型说明
ret_codeinteger响应码:0 表示成功,非0 表示失败
ret_msgstring响应描述信息:成功返回 "success",失败返回具体错误原因
dataobject业务数据体(仅 ret_code=0 时返回有效数据)
data.access_tokenstring平台应用(APP) 颁发的访问令牌,后续拉取游戏/厂商数据接口需携带此令牌鉴权
data.refresh_tokenstring刷新令牌,用于 access_token 过期后重新获取新令牌(有效期长于access_token)
data.expires_inintegeraccess_token 有效期(单位:秒),默认7200秒(2小时),以接口返回值为准
data.cp_idstring平台应用(APP) 侧OAuth层开发者/厂商唯一标识,与业务层cp_id一一映射

ret_code 的合法值

说明最低版本
0请求成功
40029invalid code,授权码无效或已过期
40030invalid sign,检查签名算法及公私钥是否匹配
40101client_secret mismatch,检查 Header 中的密钥是否正确

cURL 请求

bash
curl -X POST \
  {access_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": "authorization_code",
  "code": "YOUR_AUTH_CODE",
  "redirect_uri": "https://your.domain.com/callback"
}'

成功返回

json
{ 
  "ret_code": 0,
  "ret_msg": "success",
  "data": {
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expires_in": 7200,
    "cp_id": "dev_123456789"
  }
}

错误返回

json
{
  "ret_code": 40029,
  "ret_msg": "invalid code"
}