绑定第三方账户
POST/auth/v1/user/provider/bind
接口说明
绑定第三方账户接口,用于将第三方身份源(如GitHub、微信、QQ等)绑定到当前登录用户账号,实现多种登录方式。
入参要求
必填参数
provider_token: 第三方身份源token(必填,通过 /auth/v1/provider/token 接口获取)Authorization: 当前登录用户的access_token(必填,在请求头中传递,格式为 Bearer xxx)
可选参数
with_user_center: 是否记录到用户中心化安全日志(可选,布尔值,默认false)client_id: 客户端ID(可选,默认为环境ID)x-device-id: 设备ID(可选,在请求头中传递)
前置条件
- 用户必须已登录(需要有效的access_token)
- 用户必须在第三方平台完成授权
- 必须调用 获取第三方授权信息 接口获取provider_token
- 该第三方账号不能已被其他用户绑定
出参说明
成功响应
- 返回空对象
{},表示绑定成功
请求示例
绑定GitHub账号请求示例
{
"provider_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcm92aWRlciI6ImdpdGh1YiIsInN1YiI6IjEyMzQ1Njc4OTAiLCJleHAiOjE3MzQ2ODIzNTd9.bVJ0cE1xTnBWc0R5QmhKa0xmR3pYY1ZiTm1Bc1FkRmdIaktsTXBPclN0VXZXeElaQWJDZERlRmZHaEhpSmpLa0xs",
"with_user_center": true
}
响应示例
绑定成功响应示例
{}
Provider Token无效响应示例
{
"error": "invalid_grant",
"error_code": 4001,
"error_description": "Provider token无效或已过期"
}
未登录响应示例
{
"error": "unauthorized",
"error_code": 4003,
"error_description": "用户未登录或access_token无效"
}
字段说明
请求参数
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| provider_token | string | 是 | 第三方身份源token,通过 /auth/v1/provider/token 接口获取 |
| with_user_center | boolean | 否 | 是否记录到用户中心化安全日志,默认false |
| client_id | string | 否 | 客户端ID,默认为环境ID |
| x-device-id | string | 否 | 设备ID,在请求头中传递 |
| Authorization | string | 是 | 当前登录用户的access_token,格式为 Bearer xxx,在请求头中传递 |
响应参数
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| - | object | 是 | 成功时返回空对象 {} |
使用流程
完整绑定流程
1. 用户登录
- 用户必须先登录系统
- 获取有效的access_token
2. 获取授权URL
- 调用 获取第三方登录回调地址 接口(可选,根据三方平台授权流程决定是否需要)
- 获取第三方授权URL
- 在新窗口或弹窗中打开授权页面
3. 用户授权
- 用户在第三方平台完成授权
- 第三方平台回调并返回授权码
4. 获取Provider Token
- 调用 获取第三方授权信息 接口
- 传入授权码
- 获取provider_token
5. 绑定账号
- 调用本接口
- 传入provider_token和access_token
- 完成账号绑定
核心特性
多账号绑定
- 支持绑定多个第三方身份源
- 同一用户可绑定GitHub、微信、QQ等多个账号
- 绑定后可使用任意已绑定的方式登录
- 支持随时解绑
安全性
- 需要用户登录状态
- provider_token有效期内使用
- 防止重复绑定
- 记录绑定日志
灵活性
- 支持多种身份源
- 支持自定义身份源
- 支持安全日志记录
- 支持设备管理
使用场景
账号绑定
- 用户在个人设置中绑定第三方账号
- 方便使用多种方式登录
- 提升账号安全性
社交账号关联
- 绑定GitHub账号
- 绑定微信账号
- 绑定QQ账号
- 绑定微博账号
企业账号关联
- 绑定企业微信账号
- 绑定钉钉账号
- 绑定飞书账号
注意事项
账号绑定限制
- 同一第三方账号只能绑定一个用户
- 同一用户可以绑定多个不同的第三方账号
- 不能绑定已被其他用户绑定的第三方账号
- 绑定前会检查是否已存在绑定关系
Access Token
- 必须是有效的access_token
- 必须在请求头中传递
- 格式必须为 Bearer xxx
- Token过期需要重新登录
解绑操作
- 绑定后可以随时解绑
- 调用 解绑第三方账户 接口
- 解绑后可以重新绑定
错误处理
常见错误
invalid_grant: Provider token无效或已过期unauthorized: 用户未登录或access_token无效
错误处理策略
- provider_token无效:重新获取授权
- 账号已被绑定:提示用户该账号已被使用
- 未登录:跳转到登录页面
- 身份源未配置:联系管理员
- 达到绑定上限:解绑不常用的账号
相关接口
- 获取第三方登录回调地址 - 获取授权URL
- 获取第三方授权信息 - 获取provider_token
- 解绑第三方账户 - 解绑已绑定的账号
- 获取账号绑定的三方身份源列表 - 查看已绑定的账号列表
Request
Query Parameters
client_id string
应用对应的客户端id,可从云开发平台-->身份认证-->开发设置获取。默认为环境id,可以不传
Header Parameters
x-device-id string
设备id,当前登录设备的id。客户端应随机生成,并缓存到客户端。此参数与登录账号数有关
Authorization stringrequired
当前登录用户的access_token, 值的格式为Bearer xxx
Example: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsInN1YiI6Ijk4NzY1NDMyMTAxMjM0NTY3ODkiLCJhdWQiOiJkZW1vLWFwcC0yZjhhOWMzZTFiNGQiLCJleHAiOjE3MzQ2NzU4ODksImlhdCI6MTczNDY2ODY4OSwic2NvcGUiOiJ1c2VyIn0.dGhpc19pc19hX2Zha2Vfc2lnbmF0dXJlX2Zvcl9leGFtcGxlX3B1cnBvc2VzX29ubHlfZG9fbm90X3VzZV9pbl9wcm9kdWN0aW9uX2Vudmlyb25tZW50X3RoaXNfaXNfbm90X3JlYWxfdG9rZW5fZGF0YQ
- application/json
Body
provider_token string
第三方身份源获取的provider_token, 通过 /auth/v1/provider/token 获取
with_user_center boolean
是否记录用户中心化安全日志中
Responses
- 200
- 500
A successful response.
Response Headers
- application/json
- Schema
Schema
- any
An unexpected error response.
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
error 错误信息 (string)
error_code int32
error_description 错误描述 (string)
{
"error": "string",
"error_code": 0,
"error_description": "string"
}
Loading...