2

我正在使用帮助Sentry::authenticateAndRemember($credentials);程序对用户进行身份验证,但过了一会儿(几天)我就断开了连接。使用的会话驱动程序是数据库驱动程序。

我调查了这个问题并试图了解 Sentry 如何记住用户的身份验证。首先,在会话表中,有人知道有效载荷代表什么吗?我检查了创建的 cookie,但我不明白为什么,但到期日期设置为一个月后(而在源代码中,它看起来像是设置为 5 年后)。此外,我尝试在不记住用户的情况下登录用户(Sentry::authenticate($credentials, false);),并且创建了完全相同的 cookie,因此退出浏览器时不会断开连接。

有没有人有任何线索解释我所说的?

4

2 回答 2

1

我找到了我的问题的解决方案,在 php.ini 中,变量session.gc_maxlifetime设置为 1440。此设置指定数据将被视为“垃圾”的秒数,因此 24 分钟后我的会话无效。

将其设置为 2592000(30 天)后,问题已解决,我希望这会对某人有所帮助。

于 2014-01-10T20:05:55.263 回答
0

在带有 Laravel 4.1 的 Sentry2 中,Cookie 过期日期位于 vendor>caralyst>sentry>tests>CICookiesTest.php 第 61 行。

默认值只有 1440 秒,所以很容易让它坚持更长的时间。

于 2014-03-30T00:24:41.430 回答