CakePHP 3 调试会话超时

xin*_*ris 7 php .htaccess session cakephp-3.0 cakephp-3.x

我们将我们的应用程序移到了一个新的服务器上,现在会话对于登录用户来说过期得太快了(不确定确切的时间)。我们尝试了很多方法来找出会话在生产环境中过期的原因,但直到现在我们都没有成功。我们想把到期时间设置为 20 天。

我们尝试过的东西:

这是当前的配置:

'Session' => [
  'defaults' => 'php',
  'cookie' => 'MYAPPHO',
  'timeout'=> 80320, // in min
  'ini' => [
      'session.gc_maxlifetime' => 1728000, // in sec
      'session.cookie_lifetime' => 1728000
  ]
]
Run Code Online (Sandbox Code Playgroud)

我们还尝试设置

'defaults' => 'cache'
Run Code Online (Sandbox Code Playgroud)

并在 .htaccess 中设置值

php_value session.cookie_lifetime 1728000
php_value session.gc_maxlifetime 1728000
php_value session.cache_expire 1728000
Run Code Online (Sandbox Code Playgroud)

但行为是一样的。

我们还在 Network\Session::_timedOut() 中进行了一些调试,但没问题,因此永远不会过期。

有没有办法调试更多并找出导致会话过期的原因?

Tia*_*ica 3

黑客会很高兴会话永不过期,因为这样任何被盗的会话 ID 都将成为解锁 Web 应用程序的永久密钥。

有关您尝试过的方法为何不起作用的更多详细信息,session.gc_maxlifetimesession.cookie_lifetime参阅此处

无论如何,您可以通过在启动会话之前将session.gc_probability的值设置为 0 来实现。