【登录流程图】

Client Controller SysLoginService ThreadLocal AuthManager UserDetailsService PasswordService TokenService Redis SysUserService SecurityUtils 1. POST /login {username,password} 2. login(username,password) 3. loginPreCheck() 抛出UserNotExistsException 返回错误(400) alt 用户名或密码为空 4. setContext(authenticationToken) 5. authenticate(authenticationToken) 6. loadUserByUsername 7. selectUserByUseNo() 8. validate(user) 9. getContext() 返回原始凭证 10. matchesPassword() 抛出BadCredentialsException 认证失败 抛出UserPasswordNotMatchException 返回错误(401) alt 密码不匹配 11. 返回Authentication 12. createToken(loginUser) 13. 存储LoginUser(login_tokens:uuid) 14. 返回JWT 15. clearContext() 16. 返回token 17. 响应Token(200) Client Controller SysLoginService ThreadLocal AuthManager UserDetailsService PasswordService TokenService Redis SysUserService SecurityUtils

相关推荐
Old Uncle Tom9 分钟前
银行用户画像 -- 金融目标与需求意图
前端·人工智能·金融
IT_陈寒15 分钟前
Vue的响应式让我加班到凌晨3点,原来问题出在这
前端·人工智能·后端
东方小月15 分钟前
从0开发一个 Coding Agent(一):前言
前端·人工智能·typescript
恋猫de小郭15 分钟前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
ji_shuke38 分钟前
远程排查 Web 系统问题:如何导出 HAR 文件协助定位
前端·问题排查
学计算机的计算基1 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana21 小时前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
程序员爱钓鱼1 小时前
Rust String 与 &str 详解:字符串所有权、借用与转换
前端·后端·rust
万亿少女的梦1681 小时前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐