登录日志
一、功能概述
登录日志管理模块基于auth_login_record表实现用户登录行为的全程记录与追踪,支持日志查询、详情查看及个性化筛选功能。系统记录用户登录的关键信息(如IP地址、登录类型、项目信息等),通过分页查询和数据去重满足不同场景下的日志分析需求,同时区分管理员视角与个人视角的日志查看权限。
二、核心功能说明
(一)登录日志列表查询
- 操作路径:系统管理 → 登录日志页面,默认加载或通过筛选条件查询
- 查询参数:
- 用户账号(
userName,支持工号或appid) - 登录类型(
login_type:1账号登录/2授权登录/3免密登录) - 项目ID(
projectId,关联登录的项目) - 登录IP(
loginIp,模糊匹配) - 登录日期(
loginDate,按天筛选,自动匹配当天起止时间) - 去重选项(
options=distinct,按用户账号去重,保留最新记录)
- 用户账号(
- 分页与排序:
- 支持分页查询,通过
pageNum和pageSize指定页码和每页条数 - 默认按
create_date(登录时间)降序排列,支持自定义排序字段
- 支持分页查询,通过
- 查询逻辑:
- 普通查询:返回符合条件的所有登录记录,支持分页和排序
- 去重查询:按
user_name分组,仅保留每条分组中最新的登录记录(通过GROUP_CONCAT和SUBSTRING_INDEX实现)
- 数据转换:
- 登录类型为授权登录(
login_type=2)时,将user_name(存储为appid)转换为项目名称 - 项目ID(
project_id)自动转换为项目名称(通过ProjectCache获取)
- 登录类型为授权登录(
- 返回字段:
- 日志基本信息(ID、用户账号、登录类型、IP地址等)
- 扩展信息(登录位置、浏览器信息、登录结果等)
- 关联信息(项目名称、登录时间等)
(二)登录日志详情查询
- 操作路径:登录日志列表点击目标记录「详情」按钮
- 查询参数:日志ID(
alr_id,必填) - 返回字段:登录日志的完整信息,包括:
- 基础信息:用户ID、账号、登录类型、项目ID等
- 环境信息:浏览器信息(
user_agent)、操作来源(user_referer)、代理平台(user_plat_form) - 网络信息:IP地址(
login_ip)、IP位置(login_ip_address) - 结果信息:登录结果(
login_result,成功/失败原因) - 时间信息:登录时间(
create_date)
(三)个人登录记录查询
- 操作路径:个人中心 → 登录记录页面
- 查询参数:
- 项目编号(
projectCode,必填,指定查询的项目) - 分页参数(
pageNum、pageSize,必填,pageSize最大为100)
- 项目编号(
- 权限控制:
- 仅能查询当前登录用户(
LoginUserBO.getLoginUser())的登录记录 - 仅能查询指定项目(
projectCode对应的项目)的记录 - 项目不存在时提示“该项目不存在!”,项目已停用时提示“该项目已停用!”
- 仅能查询当前登录用户(
- 分页与排序:支持分页,默认按登录时间降序排列
- 返回字段:与日志列表查询一致,但仅包含当前用户的记录
三、登录类型与状态说明
(一)登录类型(login_type)
| 类型编码 | 说明 | user_name存储内容 |
|---|---|---|
| 1 | 账号登录 | 用户工号 |
| 2 | 授权登录 | 项目appid(外部系统接入) |
| 3 | 免密登录 | 用户工号 |
(二)登录结果(login_result)
- 成功:显示“登录成功”
- 失败:显示具体原因(如“密码错误”“账号锁定”“IP限制”等)
四、应用场景说明
- 安全审计:通过登录日志追踪异常登录行为(如异地IP、频繁失败登录)
- 用户行为分析:统计用户登录频率、常用设备、访问项目等信息
- 问题排查:根据登录结果和时间定位用户登录失败的原因(如密码错误、权限不足)
- 合规性记录:留存用户登录记录,满足数据安全和审计要求
