Community-auth Codeigniter 3 -随机似乎丢失会话变量

ttvkxqim  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(85)

我正在使用Community-Auth和Codeingniter V3来进行身份验证和存储授权级别等。
我遇到的问题是,我的用户有时会被重定向到登录页面,即使他们没有处于非活动状态。我似乎不能孤立一个特定的行为或模式来复制这个问题。
当控制器调用verify_min_level例程时会发生问题,该例程应仅验证它们是否已登录。但它返回FALSE,这意味着Community-Auth认为他们没有登录,代码重定向到登录屏幕。
由于它似乎是随机发生的,没有明显的原因(用户没有一段时间不活动,等等),它是驾驶我的用户疯狂。
有其他人见过这种行为吗?

628mspwn

628mspwn1#

我似乎已经找到了问题所在。这个特定的客户端希望会话只有在他们注销或关闭浏览器窗口时才会结束。因此我将会话过期时间设置为零(0)。
我认为垃圾收集只会偶尔删除会话(考虑到在codeigniter中,我理解0意味着会话在两年内结束),我会用自己的垃圾收集来赶上它。然而,我开始注意到ci_sessions表(我将会话数据从文件系统移动到数据库以帮助调试此问题)将频繁删除多个会话,即使没有一个会话是近两年的。
解决这个问题的方法似乎是通过将PHP参数sessions.gc_probability设置为0来完全关闭垃圾收集。
没有垃圾回收,没有过早删除会话变量。
我正在实现一个夜间CRON作业来对ci_sessions表进行垃圾收集。

相关问题