gpt4 book ai didi

php - 在 session 存储在默认 php session 存储中的情况下删除/管理用户 session 的方法?

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:35 26 4
gpt4 key购买 nike

当 session 存储在默认的 php session 存储中时,是否有任何方法可以删除用户 session ?

例如,我是网站管理员,我想禁止登录用户。用户认证状态存储在 session 中。我正在从数据库中删除用户行,但用户仍处于登录状态,所有必要的身份验证信息也存储在 session 中。我需要删除/修改 session 。

可能的方式:

  • 在每次请求时从数据库中加载用户的行
  • 创建文件,说要删除用户的 session 并在每次请求时检查此文件是否存在
  • 在/dev/shm 中创建文件(检查非常快),但重新启动时文件将被删除
  • 在数据库中存储 session (我的项目的开销)
  • 在 nosql(redis、memcachedb)中存储 session (我的项目的开销)

除了将用户 session 存储在数据库或 nosql 数据存储中之外,还有什么优雅的方法吗?

最佳答案

我知道如何做到这一点的唯一方法是删除 session 记录。如果它是一个文件,删除 session 文件。如果 session 存储在数据库或内存缓存中,请将其删除。棘手的问题是如何找到 session ID,以及用户是否存在 session ID。

如果它是一个文件,并且您在其中存储了电子邮件或用户 ID,则可以查找该文件。数据库中的 session 存储应该易于查询。不确定如何在内存缓存中执行此操作。

如果你不在每个请求上重新生成 session ,你总是可以在创建 session 时将 session_id 设置为用户唯一的东西——如果你不使用 SSL 请小心,如果您使用的唯一 key 很容易被猜到(如 user_id)。然后,您可以在用户登录时将用户 session ID 与用户记录一起存储在数据库中。

关于php - 在 session 存储在默认 php session 存储中的情况下删除/管理用户 session 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13423202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com