主题
签名交换端点(account.sso.token)
用于把授权码 code 换成 OAuth access_token。
本端点为标准 OAuth Token 端点:无需任何开放平台签名,可直接配置为标准 OAuth 框架的 token_endpoint。
请求地址
POST /api/proxy/account/sso/token
认证方式
标准形式(推荐),二选一:
client_secret_post:把client_id、client_secret放在请求体中(见下方参数)client_secret_basic:Authorization: Basic base64(client_id:client_secret),请求体中省略这两个参数
兼容说明:携带开放平台签名(Authorization: Bearer <开放平台签名> 或 X-Api-Key)的旧请求仍按原有代理方式处理,需要 account.sso.token 权限节点。
请求体参数
支持 application/x-www-form-urlencoded(标准,推荐)或 application/json,参数会按原格式转发:
grant_type:固定authorization_codecode:授权阶段返回的授权码redirect_uri:授权时使用的回调地址(需保持一致)client_id:应用 ID(vap_xxxx)(使用client_secret_basic时可省略)client_secret:应用 AK(使用client_secret_basic时可省略)
application/x-www-form-urlencoded 示例:
text
grant_type=authorization_code
code=CODE_FROM_CALLBACK
redirect_uri=https%3A%2F%2Fdsv.pub
client_id=vap_inzba7z2qbhgsk2y
client_secret=YOUR_APP_AK请求示例(标准形式,无需开放平台签名)
http
POST /api/proxy/account/sso/token HTTP/1.1
Host: open-global.vdsentnet.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=CODE_FROM_CALLBACK&redirect_uri=https%3A%2F%2Fdsv.pub&client_id=vap_inzba7z2qbhgsk2y&client_secret=YOUR_APP_AK响应示例
json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6MzUsInVzZXJJZCI6MTAwMDEsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUiLCJ0eXBlIjoib2F1dGgiLCJqdGkiOiIqKioqKiIsImlhdCI6MTc3NDA1NTc3OSwiZXhwIjoxNzc0MDU1Nzg5fQ.<SIGNATURE>",
"token_type": "Bearer",
"expires_in": 31556952,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6MzUsInVzZXJJZCI6MTAwMDEsInR5cGUiOiJyZWZyZXNoIiwianRpIjoiKioqKioiLCJpYXQiOjE3NzQwNTU3NzksImV4cCI6MTc3NjY0Nzc3OX0.<SIGNATURE>",
"scope": "openid profile",
"requestId": "435e1d38-e4b6-4224-a629-8927b81c96cc"
}常见错误
json
{
"error": "invalid_grant",
"error_description": "无效的授权码或重定向URI不匹配"
}