--- title: "03-session单模式登录+鉴权流程流程一览" created: 2025-12-04 tags: - 项目 aliases: - session单模式登录+鉴权流程流程一览 --- # session单模式登录+鉴权流程流程一览 # 登录鉴权逻辑生命周期 ## 1. 登录流程(Login Phase) ![[登录流程-68a07bac.jpg]] --- ## 2. 请求鉴权流程(Request Authorization Phase) ![[请求鉴权流程-3c3fed9c.jpg]] --- ## 3. Session 存储层(Storage Layer) ![[Session_存储层-3b233c95.jpg]] --- ## 4. Cookie 设置细节 ![[Cookie_设置细节-5bc1bafd.jpg]] --- ## 5. 权限检查机制 ![[权限检查机制-e6ee7b79.jpg]] --- ## 6. 完整时间线 ![[完整时间线-63668021.jpg]] --- ## 7. ThreadLocal 生命周期 ![[ThreadLocal 生命周期-c4cf33db.jpg]] --- ## 8. 关键配置项 ```yaml app: session: store-type: redis # memory | redis timeout-minutes: 30 # Session超时时间,单位:分钟 sliding-window: true # 是否启用滑动窗口 cleanup-interval-ms: 300000 # 每5分钟清理一次过期Session cookie-name: SESSIONID # Cookie名称 cookie-path: / # Cookie路径 cookie-domain: null # 跨域时设置 http-only: true # 是否设置 HttpOnly secure: true # 生产环境必须设置为true same-site: Strict # Strict | Lax | None redis-key-prefix: "session:" # Redis键的前缀 login-retry: max-attempts: 5 # 最大登录重试次数 lock-duration-minutes: 30 # 锁定时长,单位:分钟 ``` --- ## 9. 异常处理 ```text 异常类型 | 错误码 | HTTP 状态 | 描述 ─────────────────────|─────────────────────|──────────|────────────── NOT_LOGIN_ERROR | 401 | 401 | 未登录 USER_NOT_FOUND | 404 | 404 | 用户不存在 USER_PASSWORD_ERROR | 400 | 400 | 密码错误 USER_ACCOUNT_LOCKED | 429 | 429 | 账号被锁定 FORBIDDEN | 403 | 403 | 权限不足 NO_AUTH_ERROR | 403 | 403 | 角色不足 ``` --- ## 10. 安全最佳实践 ```text ✓ 已实现: ├─ HttpOnly Cookie: 防止 XSS 攻击 ├─ SameSite Cookie: 防止 CSRF 攻击 ├─ HTTPS 传输: Secure 标志 ├─ 动态盐密码: 存储密码不明文 ├─ 登录重试限制: 防暴力破解 ├─ 滑动窗口: 自动延期 Session ├─ ThreadLocal 清理: 防止信息泄露 ├─ 单点登录: 同账号只能一个 Session ⚠ 建议补充: ├─ 密码加密算法升级 (bcrypt/argon2) ├─ Session 审计日志 ├─ IP 地址检查 ├─ 设备指纹识别 ├─ 异常登录告警 └─ 定期强制更新密码 ``` --- **项目分区导航**:⬅️ [[02-登录态|02-登录态]] | 03-session单模式登录+鉴权流程流程一览 | ➡️ [[04-Session + Cookie + Redis 模式实现详解|04-Session + Cookie + Redis 模式实现详解]]