fix: SSO 免登录和本地 JWT 路径现在也会更新 last_login_at
此前仅密码登录路径更新 last_login_at,导致通过 SSO 共享 JWT 或本地 JWT 访问系统的用户始终显示"从未登录"。
This commit is contained in:
parent
0a4dadc748
commit
9364d56e00
|
|
@ -1,5 +1,9 @@
|
|||
# 变更日志
|
||||
|
||||
## 2026-05-18
|
||||
|
||||
- [修复] 用户管理"最后登录"时间不动态更新:SSO 免登录、本地 JWT 会话验证路径现在也会更新 `last_login_at`(此前仅密码登录路径更新,导致 SSO 用户始终显示"从未登录")
|
||||
|
||||
## 2026-05-15
|
||||
|
||||
- [修复] docker-compose.yml 缺少 `ALLOWED_API_KEYS` 环境变量传入,导致 P2 部署后中间件返回 401,issue-ai 调用 assets API 再次失效
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ export async function getSession(): Promise<SessionPayload | null> {
|
|||
'SELECT id, username, role FROM users WHERE username = ? AND is_active = 1'
|
||||
).get(sharedPayload.username) as { id: number; username: string; role: string } | undefined
|
||||
if (row) {
|
||||
db.prepare("UPDATE users SET last_active_at = datetime('now', '+8 hours') WHERE id = ?").run(row.id)
|
||||
db.prepare("UPDATE users SET last_login_at = datetime('now', '+8 hours'), last_active_at = datetime('now', '+8 hours') WHERE id = ?").run(row.id)
|
||||
return { userId: row.id, username: row.username, role: row.role }
|
||||
}
|
||||
// SSO 免登录:LLDAP 验证通过但本地无记录 → 自动创建(viewer 角色)
|
||||
|
|
@ -81,7 +81,7 @@ export async function getSession(): Promise<SessionPayload | null> {
|
|||
if (token) {
|
||||
const payload = verifyJwt(token)
|
||||
if (payload) {
|
||||
db.prepare("UPDATE users SET last_active_at = datetime('now', '+8 hours') WHERE id = ?").run(payload.userId)
|
||||
db.prepare("UPDATE users SET last_login_at = datetime('now', '+8 hours'), last_active_at = datetime('now', '+8 hours') WHERE id = ?").run(payload.userId)
|
||||
return payload
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue