获取PKCE Access Token
通过用户验证登录授权后,获取授权令牌Access Token,Access Token是第三方应用在调用竹云IDaaS 获取用户信息时必须传入的参数。
# 请求说明
POST https://{your_domain}/api/v1/oauth2/token
# 请求头
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
Content-Type | 数据类型 | 必须 | application/x-www-form-urlencoded | 使用表单方式提交参数 |
注意:此处不需要传递Authorization Bearer token。
# 请求示例
POST https://{your_domain}/api/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=stRWlW&code_verifier=lw22ZEI0JwNflL4sjEISwk8
# 请求参数
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
grant_type | 授权类型 | 必须 | authorization_code | 此值固定为authorization_code。 |
code | 授权码 | 必须 | stRWlW | 上一步返回的authorization code。如果用户成功登录后,则会跳转到指定的回调地址,并在URL中带上Authorization Code。 注意此code会在5分钟内过期。 |
redirect_uri | 回调地址 | 可选 | http://oauthdemo.bccastle.com /demo/index.jsp | 与上面一步中传入的redirect_uri保持一致。 |
code_verifier | PKCE验证码 | 必须 | lw22ZEINflL4sjEISwk8 | 应用随机生成一串长度43-128的字符并作URL-Safe的Base64编码处理,结果用作 code_verifier,将这串字符通过SHA256哈希,并用URL-Safe的Base64编码处理,结果用作 code_challenge |
client_id | 应用client_id | 必须 | RqB2HJt9N676qA | 应用申请授权时传递的client_id |
# 返回示例
正确返回示例
HTTP Status: 200 OK
{
"access_token": "Z43T3KWH9lecmy3H1IaCI...XRmsXaA",
"token_type": "Bearer",
"refresh_token": "WEAFOmOJ-A4LOhF_I39DvJuqxP0...XkFlFA",
"expires_in": 7199,
"scope": "get_user_info"
}
Client ID没有找到
HTTP Status: 400 BAD REQUEST
{
"error": "invalid_grant",
"error_description": "Client ID mismatch"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 返回参数
如果成功返回,即可在返回信息中获取到Access Token。
参数名 | 中文名称 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
access_token | 授权令牌 | 必须 | cn8AWnZyIMkOvBgHIo8 | 授权服务器返回给第三方应用的授权令牌。 |
expires_in | 授权令牌的有效期 | 必须 | 7199 | 授权服务器返回给应用的访问票据的有效期。注意:有效期以秒为单位。 |
refresh_token | 刷新令牌 | wuGzSMMTjb4YhRUOjXH | ||
token_type | 令牌类型 | 必须 | Bearer | |
scope | 授权范围 | 必须 | get_user_info |