CakePHP 3调试会话超时

问题描述 投票:7回答:2

我们已将应用程序移至新服务器,现在对于已登录的用户而言,会话期过早(不确定确切的时间)。我们尝试了许多方法来找出会话为什么在生产环境中到期,但是到目前为止,我们仍未成功。我们希望将有效期设置为20天。

我们尝试过的东西:

这是当前配置:

'Session' => [
  'defaults' => 'php',
  'cookie' => 'MYAPPHO',
  'timeout'=> 80320, // in min
  'ini' => [
      'session.gc_maxlifetime' => 1728000, // in sec
      'session.cookie_lifetime' => 1728000
  ]
]

我们也试图设置

'defaults' => 'cache'

并设置.htaccess中的值

php_value session.cookie_lifetime 1728000
php_value session.gc_maxlifetime 1728000
php_value session.cache_expire 1728000

但是行为是相同的。

我们还在​​Network \ Session :: _ timedOut()中进行了一些调试,但是没关系,因此永远不会过期。

有什么方法可以调试更多信息并找出导致会话过期的原因?

php .htaccess session cakephp-3.0 cakephp-3.x
2个回答
3
投票

黑客很高兴使会话永不过期,因为届时所有被盗的会话ID都将成为解锁Web应用程序的永久密钥。

关于session.gc_maxlifetimesession.cookie_lifetime为何不起作用的更多详细信息,请参见here。>

无论如何,您可以通过在开始会话之前将session.gc_probability的值设置为0来做到这一点。


0
投票

只需尝试重新启动应用程序服务器。有时服务器缓存的行为异常。希望这可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.