OAuth Token 换取¶
用于将授权码或刷新令牌换成 OpenASA 发放的 token。
方法与路径¶
- 方法:
POST - 路径:
/oauth/token - 鉴权:不依赖浏览器会话
请求体¶
支持 JSON 和表单两种格式。
- 公共字段:
grant_type:authorization_code或refresh_tokenclient_idgrant_type=authorization_code时:coderedirect_uricode_verifiergrant_type=refresh_token时:refresh_token
Refresh token 分支行为¶
当 grant_type=refresh_token 时,端点会:
- 校验
client_id - 校验 refresh token 是否存在、是否过期、是否已撤销
- 撤销旧 refresh token
- 重新签发新的
access_token、refresh_token、id_token
成功响应¶
200 OK
{
"token_type": "Bearer",
"access_token": "<access_token>",
"id_token": "<id_token>",
"refresh_token": "<refresh_token>",
"expires_in": 3600,
"scope": "openid profile email"
}
Refresh token 请求示例¶
JSON:
curl -X POST https://api.asahub.ai/api/oauth/token \
-H 'Content-Type: application/json' \
-d '{
"grant_type":"refresh_token",
"refresh_token":"OLD_REFRESH_TOKEN",
"client_id":"app-a"
}'
表单:
curl -X POST https://api.asahub.ai/api/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'refresh_token=OLD_REFRESH_TOKEN' \
--data-urlencode 'client_id=app-a'
失败情况¶
400:grant_type非法- 授权码无效/过期/已消费(
authorization_code分支) redirect_uri非法(authorization_code分支)code_verifier非法(authorization_code分支)- refresh token 缺失/无效/过期/已撤销(
refresh_token分支)