概览页增加后台登录记录

登录成功/失败写入 admin_login_logs,系统概览下方展示全部账号的时间、IP、设备等信息。
This commit is contained in:
yml2213
2026-07-10 21:55:32 +08:00
parent f6ea07912f
commit fa58381aa7
10 changed files with 609 additions and 11 deletions
+10 -1
View File
@@ -2,6 +2,11 @@ import { Router } from 'express'
import { createRateLimitMiddleware, getBodyFieldRateLimitKey } from '../../middleware/rate-limit.js'
import { getAdminSessionSummary, loginAdmin } from '../../services/admin/admin-auth-service.js'
import {
resolveClientIp,
resolveClientLocation,
resolveUserAgent,
} from '../../services/admin/admin-login-log-service.js'
import { createJsonHandler, extractBearerToken } from './session.js'
const router = Router()
@@ -12,7 +17,11 @@ router.post('/auth/login', createRateLimitMiddleware({
max: 10,
key: getBodyFieldRateLimitKey('username'),
}), createJsonHandler(
(req) => loginAdmin(req.body?.username, req.body?.password),
(req) => loginAdmin(req.body?.username, req.body?.password, {
ip: resolveClientIp(req),
userAgent: resolveUserAgent(req),
location: resolveClientLocation(req),
}),
{
successMessage: '登录成功',
errorMessage: '后台登录失败',
@@ -1,6 +1,8 @@
import { Router } from 'express'
import type { JsonObject } from '../../types/json.js'
import { getAdminDashboardSummary } from '../../services/admin/admin-dashboard-service.js'
import { getAdminLoginLogs } from '../../services/admin/admin-login-log-service.js'
import { createJsonHandler } from './session.js'
const router = Router()
@@ -14,4 +16,13 @@ router.get('/dashboard/summary', createJsonHandler(
},
))
router.get('/dashboard/login-logs', createJsonHandler(
(req) => getAdminLoginLogs(req.query as JsonObject),
{
successMessage: 'ok',
errorMessage: '读取登录记录失败',
scope: '[admin/dashboard/login-logs]',
},
))
export default router