补全文档。
This commit is contained in:
parent
d1b8bf6342
commit
9ea8771324
114
Readme.md
114
Readme.md
@ -16,7 +16,7 @@
|
||||
|
||||
| 字段名 | 数据类型 | 约束条件 | 解释 |
|
||||
| --------------- | -------- | --------------------- | ---- |
|
||||
| id | INTEGER | NOT NULL,PRIMARY KEY | |
|
||||
| id | INTEGER | NOT NULL,PRIMARY KEY | 主键 |
|
||||
| url | TEXT | NOT NULL | |
|
||||
| visitor_uuid | TEXT | NOT NULL | |
|
||||
| last_user_agent | TEXT | NOT NULL | |
|
||||
@ -30,6 +30,118 @@
|
||||
5. 将 url 的 last_view_time进行排序,统计出最新的 n 个记录。
|
||||
6. 将所有记录的不同 visitor_uuid 相加作为网站总访客数,将所有page_view_count相加作为网站总访问次数。
|
||||
|
||||
## 注册/登录
|
||||
|
||||
```json
|
||||
//接口: /api/v1/user/register
|
||||
|
||||
//POST Body
|
||||
{
|
||||
"username": "string(6-20位字母数字组合)",
|
||||
"password": "string(8-20位,需包含大小写和数字)",
|
||||
"email": "string(有效邮箱格式)"
|
||||
}
|
||||
|
||||
// 回复
|
||||
{
|
||||
"code": 200,
|
||||
"message": "注册成功",
|
||||
"data": {
|
||||
"user_id": 256
|
||||
}
|
||||
}
|
||||
|
||||
curl -X POST \
|
||||
http://192.168.3.5:8081/api/v1/user/register \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"username": "amass",
|
||||
"password": "123456",
|
||||
"email": "12345678@qq.com"
|
||||
}'
|
||||
```
|
||||
|
||||
|
||||
|
||||
```json
|
||||
//接口: /api/v1/user/login
|
||||
|
||||
// POST Body
|
||||
{
|
||||
"username": "string",
|
||||
"password": "string",
|
||||
}
|
||||
|
||||
curl -v -X POST \
|
||||
http://192.168.3.5:8081/api/v1/user/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"username": "amass",
|
||||
"password": "123456",
|
||||
"remember_me": true
|
||||
}'
|
||||
|
||||
|
||||
{
|
||||
"code": 200,
|
||||
"message": "login success",
|
||||
"data": {
|
||||
"user_id": "U123456789"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
```json
|
||||
//接口: /api/v1/user/logout
|
||||
|
||||
{
|
||||
"code": 200,
|
||||
"message": "logout success",
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```json
|
||||
//接口: /api/v1/user/verify
|
||||
// Cookie: auth=<jwt_token>
|
||||
|
||||
{
|
||||
"code": 200,
|
||||
"message": "会话有效",
|
||||
"data": {
|
||||
"user_id": "U123456789",
|
||||
"session_expire": 1669987200
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
一般在Web应用前后端实现中,如何传输账号密码以及保存和后续验证?请给出经典应用方案。
|
||||
|
||||
用户注册的时候,前端需要把账号密码发送到后端。这里的关键是传输过程的安全,所以必须用HTTPS,不能是明文传输。
|
||||
|
||||
后端收到密码后,不能直接存明文,得做哈希处理,并且加盐。比如用bcrypt这样的算法,因为它是专门为密码存储设计的,速度慢,可以抵御暴力破解。盐值要每个用户独立生成,这样即使两个用户密码相同,哈希值也不同。
|
||||
|
||||
然后是登录时的验证。用户输入账号密码后,前端同样通过HTTPS发送到后端。后端根据用户名找到对应的用户记录,取出盐值和哈希后的密码,然后用相同的算法对用户输入的密码进行哈希,比较两者是否一致。如果一致,就生成一个会话或者Token返回给前端,比如JWT。之后的前端请求可以带着这个Token,后端验证Token的有效性来处理后续请求。
|
||||
|
||||
表名:users
|
||||
|
||||
| 字段名 | 数据类型 | 约束条件 | 解释 |
|
||||
| ------------- | -------- | ----------------------------------- | ----|
|
||||
| id | INTEGER | NOT NULL,PRIMARY KEY,AUTO_INCREMENT | 主键 |
|
||||
| username | TEXT | UNIQUE,NOT NULL | |
|
||||
| password_hash | BLOB | NOT NULL | |
|
||||
| salt | BLOB | NOT NULL | |
|
||||
| created_at | INTEGER | NOT NULL | |
|
||||
|
||||
|
||||
|
||||
## Live2D 模型添加
|
||||
|
||||
在 XML 配置文件定义`Live2dModelsRoot` 字段,值默认为 `resources/live2d`。
|
||||
|
Loading…
x
Reference in New Issue
Block a user