外观
登录日志
2026-04-01
每次登录行为(无论成功或失败)都会自动记录登录日志,包括登录 IP、设备类型、登录结果、失败原因等信息,便于安全审计和异常追查。
目录
一、登录日志字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
id | Long | 日志 ID |
tenantId | Long | 租户 ID |
userId | Long | 用户 ID(登录成功时有值) |
username | String | 登录名 |
loginType | String | 登录类型(PASSWORD / SSO / TOKEN_REFRESH 等) |
loginIp | String | 登录 IP 地址 |
loginDevice | String | 登录设备类型(WEB / APP / MINI_PROGRAM 等) |
status | Integer | 登录结果(0:成功 1:失败) |
failReason | String | 失败原因(登录成功时为 null) |
loginTime | LocalDateTime | 登录时间 |
二、分页查询接口
接口: POST /auth/login-log/page
是否需要认证: ✅ 需要
请求体:
{
"pageNo": 1,
"pageSize": 20,
"username": "admin",
"loginIp": "192.168.1.100",
"status": 1,
"loginTimeStart": "2026-04-01T00:00:00",
"loginTimeEnd": "2026-04-01T23:59:59"
}响应:
{
"code": 0,
"data": {
"records": [
{
"id": 20001,
"username": "admin",
"loginType": "PASSWORD",
"loginIp": "192.168.1.100",
"loginDevice": "WEB",
"status": 1,
"failReason": "密码错误,剩余 4 次机会",
"loginTime": "2026-04-01T10:30:00"
},
{
"id": 20002,
"username": "admin",
"loginType": "PASSWORD",
"loginIp": "192.168.1.100",
"loginDevice": "WEB",
"status": 0,
"failReason": null,
"loginTime": "2026-04-01T10:32:00"
}
],
"total": 2,
"pageNo": 1,
"pageSize": 20
}
}常见失败原因(failReason 参考值):
| 场景 | failReason |
|---|---|
| 密码错误 | 密码错误,剩余 N 次机会 |
| 验证码错误 | 验证码错误 |
| 验证码过期 | 验证码已过期 |
| 账号不存在 | 账号不存在 |
| 账号已禁用 | 账号已被禁用 |
| 账号已锁定 | 账号已被锁定,请 N 分钟后重试 |
