
# 校验Token
#### 功能介绍
应用服务器可调用此接口校验Token。
校验Token的结果中，包含用户ID、用户名等信息。
Token填写在头域X-Auth-Token中，搭配头域X-Instance-Id使用，填入的X-Instance-Id值需与Token生成时填入的值保持一致。
#### URI
GET /v1/iotfm/auth/tokens
#### 请求参数
表1请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                    |
|:---|:---|:---|:---|
| X-Instance-Id | 是    | String | **参数说明**：实例ID。通过访问智能设施云平台界面后获取，智能设施云平台资源均为实例级隔离，所有业务接口必须填写正确的实例ID才能被成功调用。 **取值范围**：长度8-36，只允许大小写字母、数字和-字符的组合。 |
| X-Auth-Token  | 是    | String | **参数说明**：待校验的token。 **取值范围**：长度为1-32768的字符串。                                                                  |
   
#### 响应参数
**状态码：200**
表2响应Body参数 
| 参数    | 参数类型                                                                                                | 描述                                                                          |
|:---|:---|:---|
| token | [InstanceToken] object | **参数说明**：Token结构体。 **取值范围**：长度1-64。 |
   
 表3InstanceToken 
| 参数         | 参数类型                                                                                                    | 描述                                                                                                          |
|:---|:---|:---|
| issued_at  | String                                                                                                  | **参数说明**：token颁发时间，格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。 **取值范围**：长度1-64。 |
| expires_at | String                                                                                                  | **参数说明**：token过期时间，格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。 **取值范围**：长度1-64。 |
| methods    | Array of strings                                                                                        | **参数说明**：获取token的方式。 **取值范围**：长度固定为1。                              |
| roles      | Array of [Role] objects             | **参数说明**：角色列表。 **取值范围**：长度1-32。                                      |
| user       | [InstanceUserRsp] object | 用户                                                                                                          |
   
 表4Role 
| 参数   | 参数类型   | 描述                                                                                    |
|:---|:---|:---|
| id   | String | **参数说明**：权限ID。默认显示为0，非真实权限ID。 **取值范围**：长度1-64。 |
| name | String | **参数说明**：权限名称。 **取值范围**：长度1-64。              |
   
 表5InstanceUserRsp 
| 参数                  | 参数类型   | 描述                                                                                                                           |
|:---|:---|:---|
| id                  | String | **参数说明**：用户ID。 **取值范围**：长度1-64。                                                       |
| name                | String | **参数说明**：用户名。 **取值范围**：长度1-64。                                                       |
| password_expires_at | String | **参数说明**：密码过期时间（UTC时间），""表示密码不过期，格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。 **取值范围**：长度1-64。 |
   
#### 请求示例
校验Token
```
GET https://{endpoint}/v1/iotfm/auth/tokens
```
#### 响应示例
**状态码：200**
OK
```
{
  "token" : {
    "issued_at" : "2021-03-04T07:33:22.504Z",
    "expires_at" : "2021-03-05T07:33:22.504Z",
    "methods" : [ "password" ],
    "roles" : [ {
      "id" : "0",
      "name" : "te_admin"
    } ],
    "user" : {
      "id" : "43f76c518877464da16dc25a18cae71a",
      "name" : "example_user",
      "password_expires_at" : ""
    }
  }
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
