系统级用户登录 / 登出日志管理设计方案

目标:构建一套系统级、安全可审计、可追溯的用户登录 / 登出日志管理能力,同时兼顾管理员审计与普通用户自查两个视角,支持安全分析、合规审计和风险溯源。


一、建设目标

  1. 统一记录所有用户的登录 / 登出行为
  2. 支持安全审计与异常行为分析
  3. 提供清晰的用户侧可视化登录历史
  4. 可支撑后续风控、异常告警、设备管理扩展

核心关键词:

  • 可追责
  • 可回溯
  • 可分析
  • 可扩展

二、整体架构说明

日志触发点

  • 登录成功:UserController#login
  • 登录失败(建议增强):login 失败也应记录
  • 登出:新增 UserController#logout
  • 会话超时自动失效(可选增强)

统一日志流程

用户操作 → 登录/登出接口 → 日志服务 → 登录日志表

三、数据库设计

新增表:sys_user_login_log

必须字段(继承基础规范)

id           bigint(20)   PK 自增
status       tinyint(4)   状态
create_time  datetime(3)  创建时间
update_time  datetime(3)  更新时间
creator_id   bigint(20)   创建人
updater_id   bigint(20)   修改人
delete_flag  tinyint(4)   逻辑删除标识

业务扩展字段设计

字段 类型 说明
user_id bigint 用户ID
username varchar(100) 用户名
login_type varchar(16) 登录方式(账号密码/邮箱验证码/第三方)
operation_type varchar(16) 操作类型:登录/登出
login_status varchar(16) 登录状态:成功/失败
logout_type varchar(16) 登出类型:主动/超时/强制
ip_address varchar(64) 登录IP
device_type varchar(50) 设备类型
browser varchar(100) 浏览器信息
os varchar(100) 操作系统
location varchar(100) 地理位置
session_id varchar(128) 会话标识
user_agent text 浏览器完整UA
remark varchar(255) 备注信息

枚举定义合适的对应的英文。

推荐索引:

  • idx_user_id
  • idx_create_time
  • idx_ip_address
  • idx_login_status

四、菜单设计

管理员视角

路径:

安全审计 → 登录日志管理

入口逻辑:

  • 仅超级管理员 / 安全管理员可见
  • 参考 /rbac/users 风格

用户视角

路径:

头像下拉 → 登录记录

位置:

  • 与【账户设置】同级,下方
  • 风格参考 /user/apikey-management

五、管理员页面设计

页面定位

名称:登录日志管理 角色:安全审计中心

页面布局

顶部:搜索区
中部:日志列表
底部:分页
侧边:日志详情抽屉

搜索条件

  • 用户名
  • 用户ID
  • IP地址
  • 操作类型(登录/登出)
  • 登录状态
  • 时间范围
  • 设备类型
  • 浏览器
  • 地区

列表字段

字段 说明
用户名  
操作类型 登录 / 登出
状态 成功 / 失败
IP地址  
地理位置  
设备  
浏览器  
登录时间  
会话ID  
操作  

操作按钮

  • 查看详情
  • 风险标记
  • 加入黑名单
  • 导出CSV

详情抽屉设计

分区展示:

  1. 基础信息
  2. 设备指纹
  3. 网络信息
  4. 行为轨迹

六、用户页面设计

页面名称

我的登录记录

UI风格

  • 卡片式时间轴
  • 强视觉识别
  • 时间维度清晰

展示信息

  • 登录时间
  • 登录地点
  • IP地址
  • 设备信息
  • 是否为当前会话
  • 是否异常

交互设计

  • 支持时间筛选
  • 支持只看异常
  • 点击查看详情
  • 可一键下线历史设备

示意结构:

[设备] Windows Chrome
📍 东京
🕒 2025-11-23 13:20
状态:当前登录
[下线该设备]

七、新增 logout 流程设计

后端流程

用户点击退出 → 调用 logout 接口 →
更新 session 状态 → 写入登出日志 → 清除 token

日志记录逻辑

场景 operation_type logout_type
用户主动退出 登出 主动
token过期 登出 超时
管理员强制下线 登出 强制

最后一个管理员强制下线预留,我们下个版本实现这个特性。

八、安全增强设计(推荐扩展)

1. 异常登录识别规则

  • 异地登录
  • 非常用设备
  • 高频失败尝试

2. 风险评分模型

根据以下维度综合评分:

  • IP变动频次
  • 地理跨度
  • 登录时间段异常
  • 登录失败次数

展示为:

  • 低风险 / 中风险 / 高风险

九、交互流程示意

登录流程

输入账号密码
    ↓
登录成功
    ↓
写入登录日志
    ↓
生成 session

登出流程

点击退出
    ↓
调用 logout
    ↓
写入登出日志
    ↓
销毁 session

十、可扩展方向

  1. 登录设备白名单
  2. 登录地历史轨迹图
  3. 安全告警模块
  4. 行为风控引擎
  5. 安全态势大屏

十一、系统价值总结

价值 说明
审计 行为可追溯
安全 异常实时发现
合规 满足审计要求
体验 用户自查增强信任
运维 快速定位问题

参考资料