[English](auth.md)
# 验证相关API
## 获取服务器验证状态
* 路径: `/api/auth/status`、 `/auth/status`、 `/api/auth` 或 `/auth`
* 方法: `GET` 或 `POST`
* 鉴权: 无需
* 参数：无
* 返回结构[示例](auth/status.example.json)
* 返回结果的[JSON Schema](auth/status.zh_CN.json)
## 获取服务器公钥
* 路径: `/api/auth/pubkey`、 `/auth/pubkey`
* 方法: `GET` 或 `POST`
* 鉴权: 无需
* 参数：无
* 返回结构[示例](auth/pubkey.example.json)
* 返回结果的[JSON Schema](auth/pubkey.zh_CN.json)
## 用户管理
### 新增用户
* 路径: `/api/auth/user/add`、 `/auth/user/add`
* 方法: `GET` 或 `POST`
* RESTful: `PUT /api/auth/user` 或 `PUT /auth/user`
* 鉴权: 一般需要（如服务器状态内的`has_root_user`为`false`则无需鉴权，如需要仅限管理员）
* 参数：

| 参数名 | 类型 | 必须 | 说明 |
|:---:|:---:|:---:|:---:|
| `name` | `string` | 是 | 用户名称 |
| `username` | `string` | 是 | 用户名（唯一，用于登录） |
| `password` | `string` | 是 | 用户密码（使用RSA加密） |
| `is_admin` | `boolean` | 否 | 是否为管理员。默认为`false`。root用户必定为管理员。 |
| `id` | `uint64` | 否 | 需要修改的用户ID。 |
* 返回结构[示例](auth/user/add.example.json)
* 返回结果的[JSON Schema](auth/user/add.zh_CN.json)
### 更新用户
* 路径: `/api/auth/user/update`、 `/auth/user/update`
* 方法: `GET` 或 `POST`
* RESTful: `PATCH /api/auth/user` 或 `PATCH /auth/user`
* 鉴权: 需要（仅管理员）
### 修改用户名字
* 路径: `/api/auth/user/change/name`、 `/auth/user/change/name`
* 方法: `GET` 或 `POST`
* 鉴权: 需要
### 修改用户密码
* 路径: `/api/auth/user/change/password`、 `/auth/user/change/password`
* 方法: `GET` 或 `POST`
* 鉴权: 需要
### 删除用户
* 路径: `/api/auth/user/delete`、 `/auth/user/delete`
* 方法: `GET` 或 `POST`
* RESTful: `DELETE /api/auth/user` 或 `DELETE /auth/user`
* 鉴权: 需要（仅管理员）
### 获取用户信息
* 路径: `/api/auth/user/info`、 `/auth/user/info`
* 方法: `GET` 或 `POST`
* RESTful: `GET /api/auth/user` 或 `GET /auth/user`
* 鉴权: 需要（其他用户信息仅管理员）
### 获取用户列表
* 路径: `/api/auth/user/list`、 `/auth/user/list`
* 方法: `GET` 或 `POST`
* 鉴权: 需要（仅管理员）
## 获取Token
* 路径: `/api/auth/token/add`、 `/auth/token/add`
* 方法: `GET` 或 `POST`
* RESTful: `PUT /api/auth/token` 或 `PUT /auth/token`
* 鉴权：不需要
## 移除Token
* 路径: `/api/auth/token/delete`、 `/auth/token/delete`
* 方法: `GET` 或 `POST`
* RESTful: `DELETE /api/auth/token` 或 `DELETE /auth/token`
* 鉴权：需要（删除其他用户的Token仅管理员）
