
# 获取ID Token - IssueIDToken
#### 功能介绍
获取ID Token。
#### URI
POST /api/v1/oauth2/token
#### 请求参数
表1FormData参数 
| 参数            | 是否必选 | 参数类型   | 描述                                          |
|:---|:---|:---|:---|
| grant_type    | 是    | String | 授权类型，固定值：authorization_code。                |
| code          | 是    | String | 授权码，认证登录后回调获取的授权码。                          |
| client_id     | 是    | String | 应用标识，注册应用后，分配的ClientId。                     |
| client_secret | 是    | String | 应用密钥，注册应用后，分配的ClientSecret。                 |
| redirect_uri  | 是    | String | 回调地址，地址可以是注册应用时填写的回调地址，也可以是注册应用时填写的回调地址的域名。 |
   
#### 响应参数
**状态码：200**
表2响应Body参数 
| 参数            | 参数类型   | 描述                                                                 |
|:---|:---|:---|
| access_token  | String | 授权服务器返回给第三方应用的访问令牌。                                                |
| token_type    | String | 访问令牌类型。固定值：Bearer。                                                 |
| expires_in    | String | 访问令牌的有效期，以秒为单位。                                                    |
| scope         | String | 授权范围。                                                              |
| refresh_token | String | 刷新令牌。默认不生成refresh_token，如果需要，在应用的"认证配置"中设置"Refresh Token有效期"后生成返回。 |
| id_token      | String | ID Token。                                                          |
   
**状态码：400**
表3响应Body参数 
| 参数                | 参数类型   | 描述    |
|:---|:---|:---|
| error             | String | 错误类型。 |
| error_description | String | 错误描述。 |
   
#### 请求示例
基于授权码获取ID Token。授权类型为固定值authorization_code，使用注册应用时分配的ClientId和ClientSecret，重定向地址配置为注册应用时的回调地址https://example.com。
```
POST https://{domain_name}/api/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=0yV...&
client_id=cU0L3GsEq1vuOJ5iQrRSu5AyPnKL8...&
client_secret=EFj******TcE&
redirect_uri=https://example.com
```
#### 响应示例
**状态码：200**
请求成功。
- 示例 1
  ```
  {
    "access_token" : "ObU******NpD",
    "token_type" : "Bearer",
    "expires_in" : 7200,
    "scope" : "openid",
    "id_token" : "eyJ******Njg"
  }
  ```
- 示例 2
  ```
  {
    "access_token" : "NqMh******d3k",
    "token_type" : "Bearer",
    "expires_in" : 7200,
    "scope" : "openid",
    "refresh_token" : "5wI******anH",
    "id_token" : "eyJ******Njg"
  }
  ```
**状态码：400**
请求错误。
```
{
  "error" : "invalid_grant",
  "error_description" : "Invalid authorization code"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 请求成功。 |
| 400 | 请求错误。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-oneaccess/ErrorCode.html)。
