Appearance
获取用户信息
通过【构造授权链接】获得参数code、state后,则可以使用state参数获取用户相关信息,从而实现登录流程
注意
获取用户信息需要通过三方系统服务器发起请求,前端页面发起请求可能导致client_secret参数泄露
假设参数如下
- 本平台地址:
https://apaas.0codepaas.com - code:
zizemPnMfwG0P7 - client_id:
zl3SNfZfcOG0P1 - client_secret:
zhn6U0hl0gS0GK
1.获取用户信息授权凭证
三方系统服务器的接口接收到code后,可以通过以下方式获取access_token
1.1 方式1(标准方式)
当前方式为RFC 6749的标准方式,绝大部分的三方平台都支持此方式
示例代码
bash
POST /api/account/oauth2/user_access_token HTTP/1.1
Host: https://apaas.0codepaas.com
Authorization: Basic emwzU05mWmZjT0cwUDE6emhuNlUwaGwwZ1MwR0s=
Content-Type: application/x-www-form-urlencoded
{
"grant_type": "authorization_code",
"code": "zizemPnMfwG0P7"
}示例代码说明
- 请求链接: https://apaas.0codepaas.com/api/account/oauth2/user_access_token
- 请求方式: POST
Headers:
- Authorization: 基于
client_id:client_secret的Base64结果例如通过JS实现:Buffer.from('zl3SNfZfcOG0P1:zhn6U0hl0gS0GK').toString('base64')
- Content-Type: 固定值:application/x-www-form-urlencoded
Body:
- grant_type: 固定值:authorization_code
- code: 通过构造授权链接获得参数的
code参数
以上接口请求成功后,返回以下结构:
bash
{
"access_token": "2YotnFZFEjr1zCsicMWpAA", # 个人信息访问凭证
"expires_in": 3600, # 过期时间,单位秒
"scope": "profile", # 授权范围
"token_type": "Bearer", # 凭证类型
}1.2 方式2
当前方式采用json请求的方式(非标准请求方式)
示例代码
bash
POST /api/account/oauth2/user_access_token HTTP/1.1
Host: https://apaas.0codepaas.com
Content-Type: application/json
{
"grant_type": "authorization_code",
"code": "zizemPnMfwG0P7",
"client_id": "zl3SNfZfcOG0P1",
"client_secret": "zhn6U0hl0gS0GK"
}示例代码说明
- 请求链接: https://apaas.0codepaas.com/api/account/oauth2/user_access_token
- 请求方式: POST
Headers:
- Content-Type: 固定值:application/json
Body:
- grant_type: 固定值:authorization_code
- code: 通过构造授权链接获得参数的
code参数 - client_id: 三方应用的:
client_id - client_secret: 三方应用的:
client_secret
以上接口请求成功后,返回以下结构:
bash
{
"access_token": "2YotnFZFEjr1zCsicMWpAA", # 个人信息访问凭证
"expires_in": 3600, # 过期时间,单位秒
"scope": "profile", # 授权范围
"token_type": "Bearer", # 凭证类型
}2.通过凭证获取用户信息
当前方式为RFC 6749的标准方式,绝大部分的三方平台都支持此方式
示例代码
bash
GET /api/account/oauth2/user_info HTTP/1.1
Host: https://apaas.0codepaas.com
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA示例代码说明
- 请求链接: https://apaas.0codepaas.com/api/account/oauth2/user_info
- 请求方式: GET
Headers:
- Authorization: 格式为:
Bearer <access_token>access_token为步骤1中获取到个人信息访问凭证
以上接口请求成功后,返回以下结构:
bash
{
"accountName": "custom001", # 登录账号
"departmentIds": ["NiHGJyKozq06j", "bLKj9cG8SO06Z"], # 成员部门(部门ID列表)
"memberId": "RNwrUVJLqy04F", # 成员ID
"memberName": "18000000000", # 成员姓名
"memberPhone": "18000000000", # 成员手机
"memberEmail": "example@123.com", # 成员邮箱
"jobNumber": "001", # 成员工号
}注意
以下字段需要在组织管理 → 设置 → 三方应用 → 成员敏感信息位置,配置启用后才会返回
- 登录账号
- 成员部门
- 成员手机
- 成员邮箱