feat(auth): P0 登录与会话(迁移 v16、argon2id、HttpOnly Cookie)

- 迁移机制:schema::migrate 支持 15→16,新增 admin/session/setting 表
- 接口:session/setup/login/logout/password;SameSite=Strict + Origin 校验 + 失败限流
- 会话只存 token 的 sha256;改密清空全部会话
- 前端:/login 独立壳(首次=设置密码),页头登录/退出切换
- 测试:37 passed(迁移 + 登录/会话 4 例)
- 文档:README 登录说明、docs/ADMIN-PLAN.md 方案与 P0 记录
This commit is contained in:
stash
2026-10-29 12:41:03 +08:00
parent 1aac8bcbe7
commit dea7781b86
14 changed files with 1222 additions and 46 deletions
+32
View File
@@ -773,6 +773,38 @@
white-space: nowrap;
}
/* ---------- 登录页 ---------- */
.login-page {
display: grid;
place-items: center;
min-height: 100vh;
min-height: 100dvh;
padding: var(--su-space-6);
background-color: var(--su-bg-page);
}
.login-card {
display: flex;
flex-direction: column;
gap: var(--su-space-4);
width: min(380px, 100%);
}
.login-brand {
align-items: center;
}
.login-back {
font-size: var(--su-font-size-sm);
color: var(--su-text-muted);
text-align: center;
}
.login-back:hover {
color: var(--su-color-primary);
}
/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {