• 一、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等手段保护通信。