会话管理
在Casdoor管理面板中,查看活动会话,并可逐个或批量结束它们。 管理员和用户可以控制哪些设备或浏览器保持登录状态。
查看会话
- 在侧栏中打开会话。
- 您将看到该组织的所有活动会话,包括用户、应用程序、创建时间以及会话ID。
每行代表一个用户-应用程序组合;如果某行包含多个会话ID,则表示该用户已从多个设备或浏览器登录。
删除单个会话
结束特定会话仅会撤销该设备或浏览器的访问权限。 用于:
- 撤销丢失或被盗设备的访问权限
- 终止来自陌生位置的可疑登录
- 单独管理跨多台设备的会话
- 在其他地方保持登录状态时,从特定浏览器登出
步骤
在会话列表中,每个会话的ID都以标签形式显示。 要删除一个:
- 找到会话行。
- 点击您想要结束的会话ID标签上的×。
- 请在对话框中确认。
该会话将立即失效;用户仅在该设备或浏览器上被注销。
当前会话保护
您当前使用的会话无法删除。 尝试删除它时显示:尝试删除它时显示:
“会话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支持自动过期功 能,但仍请定期检查并清理已废弃的会话,以保持会话数据库的良好状态。