跳到主内容

概述

Casdoor 通过会话管理认证,会话代表跨应用的活跃登录状态。每个会话跟踪一个用户与组织中一个或多个应用之间的认证连接。

什么是会话?​

会话代表一个已认证的用户状态。用户登录某个应用时,Casdoor 会创建一条会话记录,包括:

  • Session ID:每次登录的唯一标识
  • 用户信息:已认证用户的身份
  • 应用上下文:用户登录的是哪个应用
  • 创建时间:会话建立的时间
  • 过期时间:会话自动终止的时间

用户可以同时有多个活跃会话,例如在不同设备或浏览器上登录。每个会话独立跟踪,可以细粒度地控制用户访问。

会话生命周期​

会话从创建到终止经历以下阶段:

创建:用户认证成功时(OAuth、SAML、用户名 / 密码等),Casdoor 创建一个新会话并分配唯一的会话 ID。

活跃:活跃期间,会话可以访问受保护资源而无需重新认证。每个请求都会校验会话,过期或被撤销的会话会被拒绝。

过期:会话在一段可配置的不活动时间后,或达到最长有效期时过期。 Casdoor 会自动清理过期的会话。

终止:会话可以通过登出(用户或管理员)结束。终止时,所有关联的会话 ID 会立即失效。

多会话支持​

Casdoor 支持每个用户同时有多个会话。适用于以下情况:

  • 用户从多台设备(手机、平板、电脑)访问应用
  • 用户在不同浏览器或隐私窗口中各自保持会话
  • 后端服务需要为不同的应用实例管理会话

每个会话都有自己的会话 ID,分别跟踪。这样用户可以只终止特定的会话而不影响其他登录,例如退出工作电脑上的登录,同时保持手机上的登录。

会话存储​

会话数据保存在 Casdoor 的数据库中,并关联到:

  • 创建会话的用户
  • 用户认证所通过的应用
  • 组织上下文

会话 ID 以数组形式存储,一条会话记录就能跟踪同一“用户 - 应用”组合的多个并发登录。

相关主题​