企业认证与安全体系(四):企业登录认证流程全解析——JWT、Redis、Spring Security 如何协同工作?

发布时间:2026/5/31 1:20:20

企业认证与安全体系(四):企业登录认证流程全解析——JWT、Redis、Spring Security 如何协同工作? 上一篇我们讲了《企业认证与安全体系三一篇讲透 JWT 原理与企业级实践》我们已经知道JWT 是什么JWT 为什么无法篡改JWT 为什么无法主动失效Redis 为什么会出现在认证体系里企业为什么采用双 Token 机制但问题来了在真实企业项目中JWT Redis Spring Security Gateway这些东西到底是什么关系很多开发学完之后会一种感觉JWT会了 Redis也懂了 Spring Security也听过 但是不知道它们到底怎么串起来今天我们就从工程视角通过一次真实登录流程彻底讲透企业认证体系全景图一、先看整体架构我们先不看代码。先建立全局认知。一个典型企业项目Android / iOS / Web │ ▼ Gateway │ ▼ Spring Security │ ▼ JWT │ ▼ Redis │ ▼ Controller │ ▼ Service很多人第一次看 会觉得怎么这么多组件实际上它们职责完全不同。二、每个组件负责什么先记住一句话不同组件解决不同问题JWT负责我是谁Redis负责我还能不能访问Spring Security负责认证框架Gateway负责统一入口简单理解组件职责JWT身份认证Redis会话控制Spring Security认证框架Gateway流量入口三、一次登录到底发生了什么用户 输入账号 密码点击登录。流程客户端 │ ▼ POST /login │ ▼ Spring Security │ ▼ 校验用户名密码 │ ▼ 生成JWT │ ▼ 生成RefreshToken │ ▼ Redis保存RefreshToken │ ▼ 返回客户端这里Spring Security负责账号密码认证JWT负责后续接口访问Redis负责保存会话四、登录成功后客户端拿到了什么通常 服务端返回{ accessToken:xxxxx, refreshToken:yyyyy }含义AccessToken访问接口RefreshToken刷新AccessToken有效期通常AccessToken 30分钟 RefreshToken 7天五、一次接口请求发生了什么例如获取用户信息GET /user/info客户端携带Authorization: Bearer xxxxxx请求进入Gateway然后Spring Security Filter链然后JWT校验流程客户端 │ Bearer Token ▼ Gateway │ ▼ JwtFilter │ ▼ 解析JWT │ ▼ 验证签名 │ ▼ 检查是否过期如果失败直接401 Unauthorized如果成功进入下一步。六、SecurityContextHolder 是什么时候出现的JWT验证成功后Spring Security会创建Authentication对象。可以理解成当前登录用户例如userId 1001 username admin role ADMIN然后放入SecurityContextHolder里面。此时系统已经知道当前请求是谁了。所以后续ControllergetCurrentUserId()就能直接拿到1001七、Redis 在哪里发挥作用很多人以为JWT验签成功就结束了。实际上企业里往往还会查 Redis例如JWTuserId 1001然后检查login:user:1001是否存在。存在允许访问不存在401为什么因为JWT 无法主动失效而 Redis 可以。所以企业真实流程JWT认证 Redis会话检查八、一次自动续签发生了什么假设AccessToken30分钟到期。请求接口401 Unauthorized客户端发现AccessToken失效自动调用POST /refresh携带RefreshToken服务端检查 Redis。合法生成新AccessToken返回客户端。客户端重新请求原接口。整个过程用户无感知九、一次强制下线发生了什么管理员点击踢下线服务端删除login:user:1001此时用户手机里的JWT其实还在。但是下次请求JWT验签成功之后Redis检查失败。直接401实现强制下线十、为什么企业喜欢这种方案因为JWT解决身份认证Redis解决会话管理Spring Security解决认证流程管理Gateway解决统一入口职责清晰。扩展方便。十一、真实企业认证链路全景图到这里你应该已经能把整个认证体系串起来了。用户登录 │ ▼ Spring Security认证账号密码 │ ▼ 生成JWT │ ▼ 生成RefreshToken │ ▼ Redis保存RefreshToken │ ▼ 返回客户端后续访问客户端 │ Bearer Token ▼ Gateway │ ▼ JwtFilter │ ▼ JWT验证 │ ▼ Redis检查 │ ▼ SecurityContextHolder │ ▼ Controller │ ▼ Service这就是企业认证体系最经典的架构最终核心理解很多开发学习认证体系时容易把JWT Redis Spring Security Gateway看成四个独立知识点。实际上它们是一条完整链路JWT负责身份认证Redis负责会话生命周期管理Spring Security负责认证框架Gateway负责统一鉴权入口它们共同组成企业级认证与授权体系下篇预告下一篇我们继续《企业认证与安全体系五Spring Security JWT Redis 企业级认证实战》真正进入代码层面SecurityConfig 如何配置JwtAuthenticationFilter 如何实现OncePerRequestFilter 为什么必须用登录接口如何生成 JWTRedis 如何管理 RefreshToken自动续签如何实现强制下线如何实现彻底实现一套企业级登录认证系统。

相关新闻