blob: ade70d0f867d16de8706124a535d9f4d3f2105ab [file] [log] [blame]
以下是当前项目所有后端接口及其说明,前端可以根据此文档完成联调。
---
## 通用返回结构
所有接口均返回如下 JSON:
```json
{
"code": <int>, // 0=成功,1=失败
"msg": "<string>", // 成功或失败的提示信息
"data": <object> // 成功时返回的数据,失败时为 null
}
```
---
## 1. 发送邮箱验证码
```
POST /sendVerification
Content-Type: application/x-www-form-urlencoded
```
**请求参数(Form)**
| 字段 | 类型 | 必填 | 说明 |
| ---------- | ------ | -- | ---------- |
| email | String | 是 | 接收验证码的邮箱 |
| inviteCode | String | 是 | 前端用户填写的邀请码 |
**成功响应示例**
```json
{
"code": 0,
"msg": "验证码已发送",
"data": null
}
```
**错误示例**
```json
{
"code": 1,
"msg": "无效邀请码",
"data": null
}
```
---
## 2. 用户注册
```
POST /register
Content-Type: application/x-www-form-urlencoded
```
**请求参数(Form)**
| 字段 | 类型 | 必填 | 说明 |
| -------------------- | ------- | -- | ------------------- |
| username | String | 是 | 用户名(前端输入) |
| email | String | 是 | 邮箱(用于接收验证码 & 唯一性校验) |
| verificationCode | String | 是 | 邮箱收到的 6 位验证码 |
| password | String | 是 | 登录密码 |
| identificationNumber | Integer | 是 | 身份证号(8 位数字) |
| inviteCode | String | 是 | 邀请码(预先在数据库插入并发放给用户) |
**成功响应示例**
```json
{
"code": 0,
"msg": "注册成功",
"data": null
}
```
**常见错误示例**
```json
{ "code":1, "msg":"参数不完整", "data":null }
```
```json
{ "code":1, "msg":"验证码错误或已过期", "data":null }
```
```json
{ "code":1, "msg":"无效邀请码或已过期", "data":null }
```
```json
{ "code":1, "msg":"邮箱已被注册", "data":null }
```
---
## 3. 用户登录
```
POST /login
Content-Type: application/x-www-form-urlencoded
```
**请求参数(Form)**
| 字段 | 类型 | 必填 | 说明 |
| -------------------- | ------- | -- | ----------- |
| identificationNumber | Integer | 是 | 身份证号(8 位数字) |
| password | String | 是 | 登录密码 |
**成功响应示例**
```json
{
"code": 0,
"msg": "登录成功",
"data": "<JWT_TOKEN>"
}
```
* `data`:返回的 JWT,后续请求请在请求头 `token: <JWT_TOKEN>` 中携带。
**失败示例**
```json
{ "code":1, "msg":"用户名或密码错误", "data":null }
```
---
## 4. 获取当前用户信息
```
GET /api/me
Headers:
token: <JWT_TOKEN>
```
**说明**
* 需在请求头中携带登录时返回的 JWT。若未携带或验证失败,将返回 `NOT_LOGIN`。
**成功响应示例**
```json
{
"code": 0,
"msg": "success",
"data": {
"id": 10,
"username": "usertest1",
"identificationNumber": 12345678
}
}
```
**失效示例**
```json
{ "code":1, "msg":"NOT_LOGIN", "data":null }
```
---
## 静态页面
* `login.html`:登录页(填写身份证号、密码)
* `register.html`:注册页(填写用户名、邮箱、验证码、密码、身份证号、邀请码)
* `home.html`:受保护的首页示例(从 `localStorage` 读取 token 并调用 `/api/me`)