跳到主内容

会话管理

在Casdoor管理面板中,查看活动会话,并可逐个或批量结束它们。 管理员和用户可以控制哪些设备或浏览器保持登录状态。

查看会话

  1. 在侧栏中打开会话
  2. 您将看到该组织的所有活动会话,包括用户、应用程序、创建时间以及会话ID。

每行代表一个用户-应用程序组合;如果某行包含多个会话ID,则表示该用户已从多个设备或浏览器登录。

删除单个会话

结束特定会话仅会撤销该设备或浏览器的访问权限。 用于:

  • 撤销丢失或被盗设备的访问权限
  • 终止来自陌生位置的可疑登录
  • 单独管理跨多台设备的会话
  • 在其他地方保持登录状态时,从特定浏览器登出

步骤

在会话列表中,每个会话的ID都以标签形式显示。 要删除一个:

  1. 找到会话行。
  2. 点击您想要结束的会话ID标签上的×。
  3. 请在对话框中确认。

该会话将立即失效;用户仅在该设备或浏览器上被注销。

当前会话保护

您当前使用的会话无法删除。 尝试删除它时显示:尝试删除它时显示:

“会话ID {'{'}session-id{'}'} 是当前会话,无法删除”

请使用常规注销流程退出当前会话。

删除所有会话

当您完全删除一个会话记录(而不仅仅是单个会话ID)时,Casdoor会智能地处理:

  • 如果会话记录包含多个会话ID,删除其中一个ID仅会删除该会话
  • 如果仅剩一个会话ID并将其删除,则整个会话记录将被删除
  • 使用行的删除按钮删除整个会话记录

删除某个用户的全部会话,将同时从所有设备和浏览器中将其登出。

会话删除API

开发者可使用Casdoor API以编程方式删除会话:

删除特定会话ID

要从会话记录中删除单个会话ID:

POST /api/delete-session?sessionId={'{'}session-id{'}'}
Content-Type: application/json

{
"owner": "organization-name",
"name": "username",
"application": "app-name"
}

sessionId参数指定要删除的会话ID。 如果这是该记录的最后一个会话 ID,则整个会话记录将被删除。

删除所有会话ID

要删除用户与应用程序配对的所有会话ID:

POST /api/delete-session
Content-Type: application/json

{
"owner": "organization-name",
"name": "username",
"application": "app-name"
}

要删除用户与应用程序配对的所有会话ID: 当前的活动会话无法通过这种方式删除;API 返回错误。

会话清理

Casdoor会根据您的会话超时配置自动清理过期的会话。 您无需手动删除已过期的会话,除非您希望在自动过期前立即撤销访问权限。

最佳实践

针对安全事件使用单个会话删除功能:如果您发现来自特定设备的可疑活动,只需删除该设备的会话ID,而无需将用户从所有位置登出。

教育用户进行会话管理:用户应了解如何查看其当前活动的会话,并删除他们不熟悉的会话。 考虑在您的应用程序中添加一个“我的会话”页面,该页面与Casdoor的会话API集成。

监控会话模式:并发会话数量异常可能表明账户共享或凭证泄露。 定期会话审计有助于发现安全问题。

定期清理旧会话:尽管Casdoor支持自动过期功能,但仍请定期检查并清理已废弃的会话,以保持会话数据库的良好状态。

相关文档