【问题标题】:cakephp 3 how to increase session timeoutcakephp 3 如何增加会话超时
【发布时间】:2018-06-05 12:19:06
【问题描述】:
有没有人知道如何增加 cakephp 3 中的会话超时,不管我怎么尝试,它只是在 15 分钟时超时,
最新的东西,我试过是
在 app.php 文件中更改此设置,但它仍然在 15 分钟左右超时,这非常令人沮丧
'Session' => [
'defaults' => 'php',
'timeout'=>300*60//in minutes
],
谢谢
【问题讨论】:
标签:
session
cakephp
cakephp-3.0
session-timeout
【解决方案1】:
有会话超时,还有会话 cookie 生命周期。后者不受前者影响,后者可在 CakePHP 配置中进行配置,如您的代码 sn-p 所示,并由 CakePHPs 会话处理程序处理。
检查您的 PHP 安装 session.cookie_lifetime 设置,这可能是问题的原因。如果您需要更改它,可以在 php.ini 中进行更改,或者在 CakePHP 会话配置中使用 ini 选项。
引用自文档:
默认情况下,PHP 将会话 cookie 设置为在
无论配置的 Session.timeout 值如何,浏览器都会关闭。
cookie 超时由 session.cookie_lifetime ini 控制
值,可以使用:
Configure::write('Session', [
'defaults' => 'php',
'ini' => [
// Invalidate the cookie after 30 minutes without visiting
// any page on the site.
'session.cookie_lifetime' => 1800
]
]);
Session.timeout 和 session.cookie_lifetime 的区别
价值在于后者依赖于客户说出真相
饼干。如果您需要更严格的超时检查,无需依赖
对于客户端报告的内容,您应该使用 Session.timeout。
Cookbook > Sessions > Session Configuration
如果这不能解决问题,那么您将不得不进行一些调试,检查会话 cookie 过期值,挂钩到 CakePHPs 会话处理程序以确定会话是否被终止 (\Cake\Network\Session::_timedOut())等等……