0

我正在实现会话管理,目前正在数据库中存储 4 种类型的信息:

  1. 用户身份
  2. session_id(哈希)
  3. 插入时间(用于超时)
  4. 持久性(如果用户有持久性 cookie)

用户可以使用不同的设备打开多个会话。如果用户注销,我怎么知道我应该删除哪些会话?

什么独特的信息通常与我已经获得的信息一起存储?IP 地址并不能真正起作用,因为它可以共享。我应该存储浏览器信息,但如果相同怎么办?

4

2 回答 2

2

您应该只使用单个会话 ID/哈希来识别会话。

当用户登录时(例如使用用户名/密码),您将告诉他们他们的会话 id/hash 是什么。

当用户浏览时,他们会在每次页面加载时告诉您他们的会话 id/hash。这就是你如何知道它是一个现有的登录用户,而不是一些随机的新用户。

当用户尝试注销时,他们仍会告诉您他们的会话 ID/哈希。您可以使用它来查找和删除正确的单个会话。

于 2012-05-09T12:02:07.640 回答
0

您必须存储Last access time Last Modify TimeSession 以计算 Session Timeout 的空闲时间。

要识别用户会话,您必须存储浏览器 ID。浏览器 ID 和用户 ID 映射将引导您确定您必须删除的用户会话。

于 2015-09-29T14:48:57.190 回答