- users 表加 password_hash 列;后台账号(owner+admin)密码 bcrypt 存行内, 首次登录把 env / settings 引导凭据自迁移成行哈希 - 会话 token 从用户名改为携带用户 ID,角色与停用状态每请求查库, 改角色 / 停用账号即时生效(存量会话立即 401) - 登录:先查 users 表,再走 settings 哈希 / env 引导链; admin/admin 开发模式在任何账号设过密码后失效 - 权限:系统设置、用户管理仅 owner;内容管理 admin+owner; admin 后台新增 用户 页(创建 / 重置密码 / 停用 / 删除), 设置页「登录与存储」tab 对管理员隐藏 - 账户页加修改密码表单(旧密码校验,OAuth/Passkey 首设免旧密码); 评论区管理员身份跟随各自账号,不再统一挂站主名下 - 修复:providers 为 nil 时账户页白屏(Go nil slice 序列化成 null)
16 lines
443 B
JavaScript
16 lines
443 B
JavaScript
import { adminApi, session } from '../api'
|
|
|
|
// 后台的登录态在服务端(httpOnly cookie);这里探测一次是否还有效,
|
|
// 顺带把用户名与角色(owner / admin)存下来,供导航显隐用
|
|
export async function checkAuth() {
|
|
try {
|
|
const me = await adminApi.me()
|
|
session.user = me.user || ''
|
|
session.role = me.role || 'admin'
|
|
return true
|
|
} catch (e) {
|
|
session.clear()
|
|
return false
|
|
}
|
|
}
|