新增 reset-password 子命令:免旧口令重设管理员口令并吊销全部会话

This commit is contained in:
2026-09-08 16:10:16 +08:00
parent 4cba55f472
commit 2d02756fa3
5 changed files with 69 additions and 6 deletions
+9 -2
View File
@@ -11,7 +11,7 @@
- **博客**:首页(置顶优先 + 分页 + 标签云)、详情(上一篇/下一篇)、标签页、RSS、sitemap、SEO meta 注入(仅公开内容)
- **管理**:单管理员口令登录(Argon2id)、会话 7 天滑动续期(CSRF 轮换保持不变)、防爆破限流(per-IP + per-账号)、改密
- **回收站**:删除 = 软删除,30 天内可恢复,`gc` 到期物理清除
- **运维**:`init` / `serve` / `backup`(在线一致快照)/ `gc`(默认 dry-run)/ `version`
- **运维**:`init` / `reset-password`(重设口令并吊销全部会话)/ `serve` / `backup`(在线一致快照)/ `gc`(默认 dry-run)/ `version`
## 快速开始
@@ -39,6 +39,13 @@ make build
cd web && npm install && npm run dev # /api 代理到 127.0.0.1:8080
```
忘记口令(CLI 可达即具备服务器权限,可直接重设;重设后全部会话被吊销):
```bash
./pure-note reset-password --data-dir ./data
# 非交互:PN_ADMIN_PASSWORD=xxx ./pure-note reset-password --data-dir ./data
```
## 测试
```bash
@@ -71,7 +78,7 @@ sudo systemctl enable --now pure-note pure-note-maint.timer
## 架构
```
cmd/pure-note/ CLI(serve/init/backup/gc/version)
cmd/pure-note/ CLI(serve/init/reset-password/backup/gc/version)
internal/config/ 命令行解析(--dev loopback 守卫)
internal/store/ SQLite(modernc 纯 Go 驱动):迁移(user_version) + DAO + 备份 + gc
internal/auth/ Argon2id(PHC) + 随机 token