forked from wts/wts
公开完整前后端的代码
This commit is contained in:
127
back/doc/API/register.md
Normal file
127
back/doc/API/register.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 注册 API
|
||||
|
||||
- **路径**: `/api/v3/register`
|
||||
- **方法**: `POST`
|
||||
- **功能**: 为新用户创建账户。
|
||||
|
||||
## 描述
|
||||
|
||||
此接口用于新用户进行注册。用户需要提供其个人信息和联系方式。服务器将验证所提供信息的有效性,并在数据库中创建一个新的用户记录。
|
||||
|
||||
## 认证
|
||||
|
||||
- **需要 JWT**: 是
|
||||
- **权限要求**: 调用此接口的 JWT 负载中,用户的 `access` 级别必须是 `unregistered`。已注册用户无法调用此接口。
|
||||
|
||||
## 请求
|
||||
|
||||
### 请求头
|
||||
|
||||
| Header | 类型 | 描述 |
|
||||
| --------------- | ------ | ---------------------------------- |
|
||||
| `Authorization` | string | `Bearer <your_jwt_token>` |
|
||||
| `Content-Type` | string | 必须是 `application/json` |
|
||||
|
||||
### 请求体 (JSON)
|
||||
|
||||
| 字段 | 类型 | 描述 | 校验规则 |
|
||||
| --------- | -------- | ------------------------------------------ | ------------ |
|
||||
| `sid` | string | 用户的学号 | `required` |
|
||||
| `name` | string | 用户的真实姓名 | `required` |
|
||||
| `block` | string | 宿舍楼 | `required` ,`wts.block`枚举 |
|
||||
| `room` | string | 房间号 | `required` |
|
||||
| `phone` | string | 手机号码 | `required` ,必须为有效的中国大陆11为手机号 |
|
||||
| `isp` | string | 宽带运营商 | `required`,`wts.isp` |
|
||||
| `account` | string | 宽带账号 | `required` |
|
||||
|
||||
### 命令行参数
|
||||
|
||||
如果后端开启跳过JWT模式的话,需要提供`op`参数作为OpenID
|
||||
|
||||
**请求示例**:
|
||||
|
||||
```json
|
||||
{
|
||||
"sid": "20230001001",
|
||||
"name": "哈基米",
|
||||
"block": "ZH",
|
||||
"room": "1501",
|
||||
"phone": "13800138000",
|
||||
"isp": "mobile",
|
||||
"account": "12345678901"
|
||||
}
|
||||
```
|
||||
|
||||
## 响应
|
||||
|
||||
### 成功响应 (201 Created)
|
||||
|
||||
| 字段 | 类型 | 描述 |
|
||||
| ------- | ------- | -------------------- |
|
||||
| `success` | boolean | `true` 表示操作成功 |
|
||||
| `msg` | string | 成功的提示信息 |
|
||||
|
||||
**响应示例**:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"msg": "register success~"
|
||||
}
|
||||
```
|
||||
|
||||
### 失败响应
|
||||
|
||||
#### 400 Bad Request (请求错误)
|
||||
|
||||
请求体绑定失败、格式错误或未通过验证。
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"msg": "invalid request body: Key: 'RegisterRequest.Sid' Error:Field validation for 'Sid' failed on the 'required' tag",
|
||||
"errType": 2
|
||||
}
|
||||
```
|
||||
|
||||
#### 400 Bad Request (业务逻辑错误)
|
||||
|
||||
由业务逻辑产生的已知错误。
|
||||
|
||||
| `msg` 内容 | `errType` | 描述 |
|
||||
| ---------------------------- | --------- | ---------------------------------- |
|
||||
| "抱歉,您输入的姓名或学号有误,如果确信所输入信息没有问题,请联系我们的工作人员。" | `logic` | 提供的学号在学校记录中不存在 |
|
||||
| "抱歉,您输入的姓名或学号有误,如果确信所输入信息没有问题,请联系我们的工作人员。"| `logic` | 提供的学号与姓名不匹配 |
|
||||
| "您已经注册了。如果您确信您还没有注册,请联系我们的工作人员。" | `logic` | 该学号已被注册 |
|
||||
|"抱歉,您所使用的联系电话已经被登记,请换一个不一样的电话号码。" | `logic` | 该手机号已被其他用户注册 |
|
||||
| "抱歉,您的微信已经注册过了,一个微信只能注册一个账号。" | `logic` | 该微信账号已被其他用户注册 |
|
||||
|
||||
#### 403 Forbidden (权限错误)
|
||||
|
||||
当一个已经注册的用户尝试调用此接口时返回。
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"msg": "only unregistered users can access this API",
|
||||
"errType": 3
|
||||
}
|
||||
```
|
||||
|
||||
#### 500 Internal Server Error (服务器内部错误)
|
||||
|
||||
当发生未预料到的数据库错误或其他内部错误时返回。
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"msg": "system met a uncaught error,please view logs.",
|
||||
"errType": 1
|
||||
}
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 在调用此 API 前,用户必须已经通过微信授权流程,并获取了一个包含 `unregistered` 权限的 JWT。
|
||||
- 提交的学号和姓名必须与学校数据库中的记录完全匹配,否则会注册失败。
|
||||
- 手机号码和微信 OpenID 在系统中是唯一的,不能重复注册。
|
||||
Reference in New Issue
Block a user