接口描述
使用授权码(code)换取授权令牌(access_token)。
请求方法
POST
请求地址
/auth/oauth2/token
请求参数
参数 | 参数位置 | 类型 | 是否必填 | 描述 |
Authorization | Header | String | 是 | 接口鉴权值, Basic base64encode(<client_id>:(client_secret)) 。鉴权模式为 client_secret_basic 时,必须上送该参数 |
client_id | Query | String | 是 | |
grant_type | Query | String | 是 | 固定值“authorization_code” |
redirect_uri | Query | String | 否 | 授权成功后的重定向地址。如果“用户授权/authorize”请求带有 redirect_uri 参数,则本步骤请求必须上送 redirect_uri 参数,EIAM 会校验该请求参数值与“用户授权/authorize”上送的 redirect_uri 参数值是否一致。含特殊字符,需要做 URLEncode |
code | Query | String | 是 | 授权码 |
client_secret | Query | String | 否 | 客户端 Secret,可参见 应用管理页面 > 选定指定应用 > 单击应用配置 > 对应“Client Secret”。含有特殊字符,需要做 URLEncode。如 code_verifier 为空,则 client_secret 必须上送 |
code_verifier | Query | String | 否 | PKCE 模式必要参数,code_verifier 校验码原文。可能含有特殊字符,需要做 URLEncode |
返回参数
参数 | 参数位置 | 类型 | 描述 |
access_token | Body | String | access_token |
expires_in | Body | Long | access_token有效时间,与创建应用时设置的“access_token有效期”一致 |
refresh_token | Body | String | refresh_token |
id_token | Body | String | id_token |
输入示例
client_secret_post 鉴权模式
https://<auth_domain>/auth/oauth2/token?client_id=ODQyNGJlYmFjY****WE4YjkwNjU4MzMxOThkMGU&grant_type=authorization_code&redirect_uri=http%3A%2F%2Flocalhost%3A9080%2Fauth%2Fredirect%2Fget&code=b9eb0dc2****4993e0aca6180&client_secret=oG412Uk6EdbfXtgU****UdJht1j%2bq&code_verifier=s9hw2n
client_secret_basic 鉴权模式
Authorization: 'Basic WTJKbFlUUmhZVGszWV****bnZ1Qjh0SS9Jd1VFODFudw=='https://<auth_domain>/auth/oauth2/token?grant_type=authorization_code&redirect_uri=http%3A%2F%2Flocalhost%3A9080%2Fauth%2Fredirect%2Fget&code=b9eb0dc2****4993e0aca6180&code_verifier=s9hw2n
返回示例
{"access_token": "c6a40b1****058eaed0f59509b541","expires_in": 7200,"refresh_token": "6865e92a****01df8081e4562e26c82","id_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhc2Rhc2QiLCJpYXQiOiIyMDIxLTA5LTExIDAwOjAwOjAwIiwiZXhwIjoiMjAyMS0wOS0yOSAwMDowMDowMCIsImF1ZCI6ImFzZGFzZCIsInN1YiI6ImFzZGFzZCJ9.aWErSpZtZ*****jbu_zPqt-wD_6-fP_nWnb68E"}