获取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

# 返回参数

如果成功返回,即可在返回信息中获取到Access Token。

参数名 中文名称 必须 示例值 描述
access_token 授权令牌 必须 cn8AWnZyIMkOvBgHIo8 授权服务器返回给第三方应用的授权令牌。
expires_in 授权令牌的有效期 必须 7199 授权服务器返回给应用的访问票据的有效期。注意:有效期以秒为单位。
refresh_token 刷新令牌 wuGzSMMTjb4YhRUOjXH
token_type 令牌类型 必须 Bearer
scope 授权范围 必须 get_user_info