【发布时间】:2014-10-13 16:04:56
【问题描述】:
我的 Symfony2 应用程序显示一个主页,从那里开始主要使用 AJAX 请求通过模式向用户显示内容。
我注意到,在用户空闲一段时间(大约 15-30 分钟)后,会话被破坏,用户退出并需要重新登录。这非常令人沮丧,因为我不能指望用户每次空闲几分钟后都会重新登录。
据我所知,根据我的config.yml文件,这个问题应该不会发生,如下:
framework:
session:
cookie_lifetime: 0 # Session lifetime in seconds
gc_maxlifetime: 28800 # Seconds after which data will be seen
# as garbage and potentially cleaned up
handler_id: ~ # Current using the default session handler
为了完整起见,我目前的环境如下:
- Symfony 2.4.8
- PHP 5.4
- 会话处理程序:默认(基于文件,根据
php.ini) - Ubuntu 服务器 12.10
总结:
- 应该发生的情况:用户不应退出,即使闲置数小时后也是如此
- 实际情况:用户在闲置 15-30 分钟后被注销
我该如何解决这个问题?
【问题讨论】:
-
你能检查一下浏览器中实际设置的coockie生命周期吗?
-
未设置 cookie 的到期日期(这意味着它是在浏览器打开期间)。据我所知,问题在于 Symfony 在会话实际过期之前销毁会话。
-
确保您在使用来自 symf 的会话时不使用
$_SESSION来跟踪您的变量 -
我根本没有接触到会话。这一切都由 Symfony 处理,仅用于保持用户登录。我不会在任何地方的会话中存储任何数据。