目录一、单点登录(SSO)到底是什么?1. 核心定义2. 核心解决的问题3. 主流 SSO 实现方案(生产环境选型)二、核心原理(必须懂,不然代码看不懂)1. 整体流程2. 关键组件三、Java 生产环境实战(完整可运行)架构说明第一步:搭建通用依赖(所有项目共用)1. pom.xml 核心依赖2. 通用配置(application.yml)第二步:编写通用工具类(JWT + Redis)1. JWT 工具类(生成、解析令牌)2. Redis 工具类第三步:搭建 SSO 认证中心(sso-server)1. 用户实体类2. 登录接口(核心)第四步:搭建子系统(sso-client)1. 编写登录拦截器2. 子系统调用 SSO 接口工具类3. 注册拦截器4. 子系统测试接口四、生产环境完整测试流程五、生产环境关键优化(必看)总结一、单点登录(SSO)到底是什么?1. 核心定义单点登录(Single Sign-On,SSO):一次登录,多系统通行。用户在一个认证中心登录后,访问同域名 / 跨域名的其他所有子系统、第三方系统时,无需重复输入账号密码,自动完成登录认证。2. 核心解决的问题多系统(如电商后台、支付系统、用户中心)重复登录,体验差多套账号密码,管理混乱、安全风险高生产环境统一权限管控、统一登出3. 主流 SSO 实现方案(生产环境选型)方案适用场景优点缺点JWT + Redis微服务、前后端分离、中小型项目轻量、无侵入、易部署不适合超大型分布式OAuth2.0第三方登录(微信 / QQ 登录)标准协议、安全配置复杂CAS传统企业级单体 / 集群项目成熟稳定重、学习成本高SAML2.0政企、金融系统极高安全极复杂✅ 生产实战选型:SpringBoot + JWT + Redis(最通用、轻量、企业级落地首选)二、核心原理(必须懂,不然代码看不懂)1. 整体流程用户访问子系统 A→ 未登录 → 重定向到SSO 认证中心认证中心校验账号密码→ 校验通过生成 JWT 令牌→ 存入 Redis(存储用户信息、设置过期时间)返回令牌给前端(Cookie/Header)用户访问子系统 B → 携带令牌 → 子系统请求认证中心校验校验通过 → 自动登录,无需输入密码2. 关键组件SSO 认证中心:统一登录、登出、令牌校验(独立服务)JWT:轻量令牌,存储用户标识Redis:存储令牌,支持统一登出、令牌过期管理拦截器:所有子系统统一校验令牌三、Java 生产环境实战(完整可运行)架构说明sso-server:单点登录认证中心(核心)sso-client1、sso-client2:两个子系统(模拟多系统)技术栈:SpringBoot 2.7+、JWT、Redis、Mysql、MyBatis-Plus第一步:搭建通用依赖(所有项目共用)1. pom.xml 核心依赖!-- SpringBoot Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Redis -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId /dependency !-- JWT -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version0.9.1/version /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-impl/artifactId version0.9.1/version scoperuntime/scope /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-jackson/artifactId version0.9.1/version scoperuntime/scope /dependency