客户端模式
# 说明
提示
- 在请求体 JSON 里传
app_id和app_secret,不要放在请求头。本接口不需要Authorization。 grant_type固定传client_credentials。- 拿到的
access_token要放在后续接口的请求头:Authorization: Bearer {access_token}。 expires_in和refresh_token_expires_in是 Unix 毫秒时间戳,表示绝对过期时间,不是剩余秒数。访问令牌默认 2 小时,刷新令牌默认 180 天。- 过期前用
refresh_token换新令牌。刷新令牌丢失或过期时,再用client_credentials重新获取。
# 接口地址
/oauth/api/v1/token
# 请求方式
POST
# body请求参数
| 参数名 | 说明 | 是否必填 | 最大长度 | 示例 |
|---|---|---|---|---|
| app_id | 开发者唯一标识 | 是 | 32 | 7520b82387784 |
| app_secret | 开发者密钥 | 是 | 32 | 2039964434a08828828be16ef454f485 |
| grant_type | 授权方式 | 是 | 32 | client_credentials |
# 返回参数
| 参数名 | 说明 | 最大长度 | 示例 |
|---|---|---|---|
| access_token | 令牌 | 1024 | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... |
| expires_in | 过期时间,Unix 毫秒时间戳。访问令牌默认 2 小时 | 16 | 1697195592690 |
| refresh_token | 刷新令牌 | 1024 | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... |
| refresh_token_expires_in | 刷新令牌过期时间,Unix 毫秒时间戳。默认 180 天 | 16 | 1697447592690 |
# 请求示例
{
"app_id": "7520b82387784",
"app_secret": "2039964434a08828828be16ef454f485",
"grant_type": "client_credentials"
}
curl --location --request POST '{baseUrl}/oauth/api/v1/token' \
--header 'Request-Id: 1697189440982' \
--header 'Sign: uqMPDt0ZUghN7/wUxswAV7EzCLsX0V3WEyTAyC55qnDAm0S5l7mGQCMgj4s3j0AXt58i8DKDyXMI2zvDCb9A5Q4CUhXricUAdKVH3+YPCmjG2kCvTfwFt9o78vTGwv1VbaedOsvp6goBcLdeRSU4Aiac/sabxemhjZE+8Qom7BY=' \
--header 'X-Timestamp: 1697189440233' \
--header 'Content-Type: application/json' \
--data-raw '{
"app_id":"15696412709535895041",
"app_secret":"bc2ead7739f447c49032b4aef7818c46",
"grant_type":"client_credentials"
}'
// Make sure to add code blocks to your code group
# 返回示例
{
"trace_id": "3c5be383841a0e9d",
"code": "SUCCESS",
"data": {
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IkNUMjIwNzI4MTU2MDAwMTQiLCJhY2Nlc3NUb2tlbkV4cGlyZWQiOjE2OTcxOTU1OTI2OTAsImFwcElkIjoiMTU2OTY0MTI3MDk1MzU4OTUwNCIsInVuaXRJZCI6IlVUMjIwODE3MTU2MDEwNzgiLCJncmFudFR5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJvcmdDbGllbnRJZCI6IkNUMjIwNzI4MTU2MDAwMTQiLCJvcmdVbml0SWQiOiJVVDIyMDgxNzE1NjAxMDc4In0.kEouiUWgR-2M3nOA3POEYnVluWGTi2_I3ghYTGHpYrs",
"refresh_token_expires_in": 1697447592690,
"refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IkNUMjIwNzI4MTU2MDAwMTQiLCJhY2Nlc3NUb2tlbkV4cGlyZWQiOjE2OTc0NDc1OTI2OTAsImFwcElkIjoiMTU2OTY0MTI3MDk1MzU4OTUwNCIsInVuaXRJZCI6IlVUMjIwODE3MTU2MDEwNzgiLCJncmFudFR5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJvcmdDbGllbnRJZCI6IkNUMjIwNzI4MTU2MDAwMTQiLCJvcmdVbml0SWQiOiJVVDIyMDgxNzE1NjAxMDc4In0.W6-f01j1rcrIrVIRsLa2yY-TSX5OBxuUG1ugJMdqTzg",
"expires_in": 1697195592690
},
"success": true,
"message": null
}
{
"trace_id": "604a5bdacf6f0e90",
"code": "B_Sign_InvalidError",
"success": false,
"message": "app_id is invalid"
}
// Make sure to add code blocks to your code group
# 更新令牌
同一个地址 POST /oauth/api/v1/token。grant_type 改为 refresh_token,并带上之前保存的刷新令牌。返回新的 access_token 和 refresh_token。刷新令牌丢失或过期时,再用 client_credentials 重新获取。
| 参数名 | 说明 | 是否必填 | 最大长度 | 示例 |
|---|---|---|---|---|
| app_id | 开发者唯一标识 | 是 | 32 | 7520b82387784 |
| app_secret | 开发者密钥 | 是 | 32 | 2039964434a08828828be16ef454f485 |
| grant_type | 授权方式 | 是 | 32 | refresh_token |
| refresh_token | 刷新令牌 | 是 | 1024 | 1ENheDxpjS5/YzCiA/IQkntco/PdQ0wFChYs5oMeLz77TOdJmyoJt4r7/fCAjwRg |