blob: ade70d0f867d16de8706124a535d9f4d3f2105ab [file] [log] [blame]
Your Name695f6a62025-05-17 00:58:04 +08001
2
3以下是当前项目所有后端接口及其说明,前端可以根据此文档完成联调。
4
5---
6
7## 通用返回结构
8
9所有接口均返回如下 JSON:
10
11```json
12{
13 "code": <int>, // 0=成功,1=失败
14 "msg": "<string>", // 成功或失败的提示信息
15 "data": <object> // 成功时返回的数据,失败时为 null
16}
17```
18
19---
20
21## 1. 发送邮箱验证码
22
23```
24POST /sendVerification
25Content-Type: application/x-www-form-urlencoded
26```
27
28**请求参数(Form)**
29
30| 字段 | 类型 | 必填 | 说明 |
31| ---------- | ------ | -- | ---------- |
32| email | String | 是 | 接收验证码的邮箱 |
33| inviteCode | String | 是 | 前端用户填写的邀请码 |
34
35**成功响应示例**
36
37```json
38{
39 "code": 0,
40 "msg": "验证码已发送",
41 "data": null
42}
43```
44
45**错误示例**
46
47```json
48{
49 "code": 1,
50 "msg": "无效邀请码",
51 "data": null
52}
53```
54
55---
56
57## 2. 用户注册
58
59```
60POST /register
61Content-Type: application/x-www-form-urlencoded
62```
63
64**请求参数(Form)**
65
66| 字段 | 类型 | 必填 | 说明 |
67| -------------------- | ------- | -- | ------------------- |
68| username | String | 是 | 用户名(前端输入) |
69| email | String | 是 | 邮箱(用于接收验证码 & 唯一性校验) |
70| verificationCode | String | 是 | 邮箱收到的 6 位验证码 |
71| password | String | 是 | 登录密码 |
72| identificationNumber | Integer | 是 | 身份证号(8 位数字) |
73| inviteCode | String | 是 | 邀请码(预先在数据库插入并发放给用户) |
74
75**成功响应示例**
76
77```json
78{
79 "code": 0,
80 "msg": "注册成功",
81 "data": null
82}
83```
84
85**常见错误示例**
86
87```json
88{ "code":1, "msg":"参数不完整", "data":null }
89```
90
91```json
92{ "code":1, "msg":"验证码错误或已过期", "data":null }
93```
94
95```json
96{ "code":1, "msg":"无效邀请码或已过期", "data":null }
97```
98
99```json
100{ "code":1, "msg":"邮箱已被注册", "data":null }
101```
102
103---
104
105## 3. 用户登录
106
107```
108POST /login
109Content-Type: application/x-www-form-urlencoded
110```
111
112**请求参数(Form)**
113
114| 字段 | 类型 | 必填 | 说明 |
115| -------------------- | ------- | -- | ----------- |
116| identificationNumber | Integer | 是 | 身份证号(8 位数字) |
117| password | String | 是 | 登录密码 |
118
119**成功响应示例**
120
121```json
122{
123 "code": 0,
124 "msg": "登录成功",
125 "data": "<JWT_TOKEN>"
126}
127```
128
129* `data`:返回的 JWT,后续请求请在请求头 `token: <JWT_TOKEN>` 中携带。
130
131**失败示例**
132
133```json
134{ "code":1, "msg":"用户名或密码错误", "data":null }
135```
136
137---
138
139## 4. 获取当前用户信息
140
141```
142GET /api/me
143Headers:
144 token: <JWT_TOKEN>
145```
146
147**说明**
148
149* 需在请求头中携带登录时返回的 JWT。若未携带或验证失败,将返回 `NOT_LOGIN`。
150
151**成功响应示例**
152
153```json
154{
155 "code": 0,
156 "msg": "success",
157 "data": {
158 "id": 10,
159 "username": "usertest1",
160 "identificationNumber": 12345678
161 }
162}
163```
164
165**失效示例**
166
167```json
168{ "code":1, "msg":"NOT_LOGIN", "data":null }
169```
170
171---
172
173## 静态页面
174
175* `login.html`:登录页(填写身份证号、密码)
176* `register.html`:注册页(填写用户名、邮箱、验证码、密码、身份证号、邀请码)
177* `home.html`:受保护的首页示例(从 `localStorage` 读取 token 并调用 `/api/me`)