Skip to content

获取Access Token

用户成功登录后,访问获取令牌Access Token接口,这一步同OAuth2协议步骤一致,然后Token EndPoint会的返回信息除了OAuth2规定的参数外,还增加一个id_token的字段,用户的信息通过JWT格式封装在id token中。

请求说明

回调地址和实际配置不匹配

http
POST https://{your_domain}/api/v1/oauth2/token

请求头

参数名中文名称必填示例值描述
Authorization认证信息必须Basic UnFCMkhKdNOWk9xWA==使用client_id和client_secret进行basic64认证,
格式为: base64(client_id:client_secret)
Content-Type数据类型必须application/x-www-form-urlencoded使用表单方式提交参数

请求示例

http
POST https://{your_domain}/api/v1/oauth2/token

Authorization: Basic UnFCMkhKdGt6bFU...aT0NObkk4NlNOWk9xWA==

Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=stRWlW&redirect_uri=http://oidcdemo.bccastle.com/demo/index.jsp

请求参数

参数名中文名称必填示例值描述
grant_type授权类型必须authorization_code此值固定为authorization_code。
code授权码必须stRWlW上一步返回的authorization code。
用户成功登录后跳转到指定的回调地址,
并在URL中带上Authorization Code。
注意此code会在5分钟内过期。
redirect_uri回调地址可选http://oidcdemo.bccastle.com
/demo/index.jsp
与上面一步中传入的redirect_uri保持一致。

返回示例

正确返回示例

json
HTTP Status: 200 OK
{     
    "access_token""Z43T3KWH9lgPRHP8CmnPmC1hU5lyJNw9es8bruLXRmsXaA",
    "token_type""Bearer",     
    "refresh_token""WEAFOmOJ-A4LOhF_I39DvJuqxP0o7YznzDQ2adn5yXkFlFA",
    "expires_in"7199,     
    "scope""openid",     
    "id_token""eyJraWQVlMiIsImFsZOiJodHRwczovL21o...8oEoRsydhg" 
}

redirect_uri参数不正确

json
HTTP Status: 400 BAD REQUEST 
{     
    "error""invalid_grant",     
    "error_description""Invalid redirect: [xxx] (xx) does not match one of the registered values." 
}

错误返回示例

json
HTTP Status: 400 BAD REQUEST 
{
    "error""invalid_grant",
    "error_description""Invalid authorization code: a2W0B8Q"
}

应用凭据错误

json
HTTP Status: 401 Unauthorized
{
	"error""invalid_client",
    "error_description""Bad client credentials"
}

返回参数

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

参数名中文名称必填示例值描述
access_token授权令牌必须NObiKQS-cn8AWnZyIMkOvBgHIo8授权服务器返回给第三方应用的授权令牌。
expires_in授权令牌的有效期必须7199授权服务器返回给应用的访问票据的有效期。注意:有效期以秒为单位。
refresh_token刷新令牌可选wuGzSMMTjb4YhRUOjXHj-t-QD84默认平台不返回
token_type令牌类型必须Bearer
scope授权范围必须openid
id_token用户令牌必须eyJhbGciOiJSUzI1NiIsImtp....将用户信息通过jwt格式进行封装

竹云IDaaS开放平台