我正在实现 session 管理,并且当前在数据库中存储 4 种类型的信息:
- 用户 ID
- session_id(哈希)
- insertion_time(超时)
- 持久性(如果用户 有一个持久性 cookie)
用户可以使用不同的设备打开多个 session 。如果用户注销,我如何知道应该删除哪些 session ?
哪些独特信息通常与我已经获得的信息一起存储? IP 地址并不能真正发挥作用,因为它可以共享。我应该存储浏览器信息,但如果相同怎么办?
最佳答案
您应该只使用单个 session ID/哈希来识别 session 。
当用户登录(例如使用用户名/密码)时,您将告诉他们他们的 session ID/哈希是什么。
当用户浏览时,他们会告诉您每个页面加载的 session ID/哈希值。这就是您如何知道这是现有登录用户,而不是某个随机的新用户。
当用户尝试注销时,他们仍然会告诉您他们的 session ID/哈希值。您可以使用它来查找并删除正确的单个 session 。
关于c - 实现 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515319/