获取三方授权信息
POST/auth/v1/provider/token
接口说明
获取第三方服务的授权信息,通过OAuth登录获取OAuth客户端对应的授权用户信息,生成provider_token
入参要求:
client_id: 应用对应的客户端id(可选,默认为环境id)x-device-id: 设备id(必填,请求头中传入)- 请求体参数(v1GrantProviderTokenRequest):
provider_id: 身份源id(必填,如:github、wechat、apple等)provider_code: 第三方系统获取的登录code(用于换取用户身份,与 provider_id_token 二选一)provider_id_token: 第三方系统返回的 id_token/identityToken(用于换取用户身份,与 provider_code 二选一,如 Apple 登录返回的 identityToken)provider_redirect_uri: 身份源回调地址(可选)
前置条件:
- 需要先通过第三方授权流程获取授权码(code),或第三方直接返回 id_token/identityToken
provider_code与provider_id_token至少传入一个- 第三方身份源需要在云开发平台配置
出参:
- 返回provider_token和provider_profile信息(v1GrantProviderTokenResponse)
- provider_token用于后续登录接口调用
- provider_profile包含第三方用户的基本信息
获取三方授权信息请求示例(授权码方式)
POST /auth/v1/provider/token
x-device-id: device_123456
Content-Type: application/json
{
"provider_id": "github",
"provider_code": "authorization_code_from_github",
"provider_redirect_uri": "https://your-app.com/callback"
}
获取三方授权信息请求示例(id_token 方式)
POST /auth/v1/provider/token
x-device-id: device_123456
Content-Type: application/json
{
"provider_id": "apple",
"provider_id_token": "<identityToken 字符串>"
}
获取三方授权信息响应示例
{
"provider_token": "your_provider_token",
"expires_in": 3600,
"provider_profile": {
"provider_id": "github",
"sub": "1234567890",
"name": "张三",
"picture": "https://avatars.githubusercontent.com/u/1234567890",
"email": "zhangsan@example",
"provider": "github"
}
}
使用流程:
- 用户完成第三方授权后,获取授权码(code)或第三方返回的 id_token/identityToken
- 调用此接口使用授权码或 id_token/identityToken 换取provider_token
- 使用provider_token调用第三方授权信息登录接口完成登录
关键特性:
- provider_token有效期为3600秒(1小时)
- 返回的provider_profile包含第三方用户的完整信息
- 支持自动注册新用户(如果用户不存在)
- 支持绑定到现有用户账号
Request
Responses
- 200
- 500
A successful response.
Response Headers
An unexpected error response.