mirror of
https://github.com/KingHWJ/WeReadBoard.git
synced 2026-11-03 18:24:58 +08:00
feat(auth): 增加登录验证和五天会话
This commit is contained in:
1 parent
ecd16bcefc
commit
810b52a051
14 files changed
+467
-20
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# master 自动部署
|
||||
|
||||
GitHub Actions workflow 位于 `.github/workflows/deploy.yml`。每次 `master` 分支 push 后,Actions 会通过 SSH 登录服务器,在部署目录执行根目录 `deploy.sh`,拉取最新 `master`、安装依赖、执行阅读目标表迁移并重启服务。手动触发时也固定部署 `master`,不能选择其他分支发布。
|
||||
GitHub Actions workflow 位于 `.github/workflows/deploy.yml`。每次 `master` 分支 push 后,Actions 会通过 SSH 登录服务器,在部署目录执行根目录 `deploy.sh`,拉取最新 `master`、安装依赖、执行全部数据库迁移并重启服务。手动触发时也固定部署 `master`,不能选择其他分支发布。
|
||||
|
||||
## GitHub 配置
|
||||
|
||||
@@ -32,7 +32,7 @@ git checkout master
|
||||
git pull --ff-only origin master
|
||||
python3 -m venv .venv # 仅 .venv 不存在时执行
|
||||
.venv/bin/python -m pip install -r requirements.txt
|
||||
# 读取 reading_api.MYSQL_CONFIG 后执行 migrations/001_reading_goals.sql
|
||||
# 读取 reading_api.MYSQL_CONFIG 后按顺序执行 migrations/*.sql
|
||||
sudo systemctl restart "$SERVICE_NAME"
|
||||
```
|
||||
|
||||
@@ -56,6 +56,9 @@ Environment=WEREAD_DB_USER=weread
|
||||
Environment=WEREAD_DB_PASSWORD=change-me
|
||||
Environment=WEREAD_DB_NAME=weread
|
||||
Environment=PORT=8770
|
||||
Environment=WEREAD_SESSION_SECRET=<服务器生成的随机密钥>
|
||||
Environment=WEREAD_AUTH_SETUP_TOKEN=<仅首次初始化使用的随机口令>
|
||||
Environment=WEREAD_SESSION_COOKIE_SECURE=1
|
||||
ExecStart=/opt/weread-board/WeReadBoard/.venv/bin/python app.py
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
@@ -65,3 +68,7 @@ WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
如果服务名或部署目录不同,在仓库 Variables 中调整 `SERVICE_NAME` 和 `DEPLOY_PATH`。
|
||||
|
||||
登录认证还需配置 `WEREAD_SESSION_SECRET` 和首次使用的 `WEREAD_AUTH_SETUP_TOKEN`。在服务器分别运行两次 `python3 -c 'import secrets; print(secrets.token_urlsafe(48))'` 生成不同的值。迁移自动创建 `weread_auth` 表;首次访问 `/login` 时输入初始化口令、管理员账号和至少 12 位密码。初始化成功后,从 systemd 配置中删除 `WEREAD_AUTH_SETUP_TOKEN` 并重启服务。数据库中的密码只保存哈希。
|
||||
|
||||
`WEREAD_SESSION_COOKIE_SECURE=1` 要求浏览器通过 HTTPS 访问。仅本机 HTTP 验收可临时设为 `0`,不要在公网 HTTP 下传输登录密码。
|
||||
Reference in new issue
Block a user