feat: 添加用户登录认证功能,确保系统安全性,并提供修改密码和退出登录选项

This commit is contained in:
2026-03-14 00:11:16 +08:00
parent 847ec32144
commit d2d63d5e61
15 changed files with 437 additions and 5 deletions

View File

@@ -61,7 +61,48 @@ python app.py
默认访问:`http://127.0.0.1:5000`
### 2.4 可选:启用 AI 补货建议(硅基流动
### 2.4 登录认证(默认开启
系统启动后会自动启用登录保护,未登录用户会被重定向到登录页。
- 默认管理员用户名:`admin`
- 默认管理员密码:`admin123456`
可通过环境变量覆盖默认账号:
```powershell
$env:INVENTORY_ADMIN_USERNAME="你的管理员用户名"
$env:INVENTORY_ADMIN_PASSWORD="你的管理员密码"
```
首次登录后,建议立即在页面右上角进入“修改密码”完成改密。
#### 2.4.1 忘记密码救砖
如果还能登录:
- 右上角 `账号` -> `修改密码`
如果已经无法登录,可在项目根目录执行下面命令重置 `admin` 密码(将示例密码替换为你自己的强密码):
```powershell
c:/Users/BeihongWang/Desktop/inventory/.venv/Scripts/python.exe -c "from app import app,db,User,generate_password_hash; ctx=app.app_context(); ctx.push(); u=User.query.filter_by(username='admin').first(); u.password_hash=generate_password_hash('NewPass123!'); db.session.commit(); print('admin password reset ok'); ctx.pop();"
```
执行完成后,用新密码重新登录。
如果要重置非 `admin` 账号,可用通用模板(把 `target_username``NewPass123!` 改成你的值):
```powershell
c:/Users/BeihongWang/Desktop/inventory/.venv/Scripts/python.exe -c "from app import app,db,User,generate_password_hash; target_username='your_username'; new_password='NewPass123!'; ctx=app.app_context(); ctx.push(); u=User.query.filter_by(username=target_username).first(); print('user found:', bool(u)); (setattr(u, 'password_hash', generate_password_hash(new_password)), db.session.commit(), print('password reset ok')) if u else print('skip reset'); ctx.pop();"
```
注意:
- `INVENTORY_ADMIN_PASSWORD` 仅在“系统中还没有任何用户”时用于创建默认管理员。
- 如果数据库里已经有用户,修改该环境变量不会自动改已有账号密码。
### 2.5 可选:启用 AI 补货建议(硅基流动)
在启动前设置环境变量: