- 一、SSO 登录典型架构图(系统整体关系)
- 二、SSO 登录典型流程图(用户登录过程)
一、SSO 登录典型架构图
+-----------------+
| 用户浏览器 |
+-----------------+
|
v
+------------------------+
| 统一认证中心 (SSO) |
| (Cloudflare Worker + |
| @auth/core + D1 DB) |
+------------------------+
|
+-------+--------+
| |
v v
+-----------+ +-----------+ +-----------+
| 系统 A | | 系统 B | | 系统 C |
| (应用1) | | (应用2) | | (应用3) |
+-----------+ +-----------+ +-----------+
说明:
- 用户访问任意系统(A/B/C)时,如果没有登录,会被重定向到统一认证中心(SSO Server)。
- 验证成功后,SSO 颁发身份令牌(JWT Token / Session Cookie)。
- 用户带着认证信息访问其他系统,无需再次登录。
二、SSO 登录典型流程图
用户浏览器
|
| 1.访问系统A
v
系统A (子系统)
|
| 2. 检查无登录状态,重定向到认证中心
v
统一认证中心 (SSO Server)
|
| 3. 显示登录页(账号密码 / 第三方登录)
v
用户提交登录信息
|
| 4. SSO 验证身份(查D1数据库)
v
|
| 5. 认证成功,生成JWT Token / 会话
|
| 6. 设置浏览器Cookie 或 返回Token
v
用户浏览器持有Token
|
| 7. 重定向回系统A,携带Token
v
系统A (子系统)
|
| 8. 系统A验证Token,识别用户身份
v
系统A正常显示内容
---------------------------------------------
后续流程(访问系统B / 系统C)
---------------------------------------------
用户浏览器
|
| 9.访问系统B
v
系统B
|
| 10. 发现浏览器已有Token
|
| 11. 验证Token,直接识别用户
v
系统B正常显示内容(无需再次登录)
补充关键点 🧠
步骤 | 说明 |
---|
Token 生成 | 由认证中心生成,通常是 JWT 格式,包含用户ID、过期时间等信息。 |
Token 验证 | 各子系统根据公钥或共享密钥验证 Token 是否有效。 |
安全性 | Token 需要设置合理的过期时间,防止泄露。可以启用 Refresh Token 策略。 |
登出流程 | 用户登出时,可以清除 Token,也可以让 SSO 通知各子系统失效会话。 |
小结
- SSO Server:负责认证、签发 Token。
- 子系统:负责识别和验证 Token,不自己处理登录逻辑。
- 用户体验:只需要登录一次,之后访问任意系统都无需再次登录。
- 安全性:基于 Token 的认证,同时可以结合 HTTPS、安全Cookie等手段保护通信。