【发布时间】:2015-02-27 06:28:26
【问题描述】:
我四处寻找这个问题的好答案,但没有找到。基本上我需要我的 Magento 用户在 15 分钟后或关闭浏览器后自动注销。非常简单的问题,但到目前为止还没有明确的答案。我知道当生命周期为 0 时,cookie 变成了会话 cookie,并且会在浏览器关闭后过期。当生命周期>0 时,cookie 成为一个持久性 cookie,将在一定时间后过期。问题是如何完美地满足这两个条件。
在 Mage_Core_Model_Session_Abstract_Varien::start() 中有这样的代码:
$cookieParams = array(
'lifetime' => $cookie->getLifetime(),
'path' => $cookie->getPath(),
'domain' => $cookie->getConfigDomain(),
'secure' => $cookie->isSecure(),
'httponly' => $cookie->getHttponly()
);
...
call_user_func_array('session_set_cookie_params', $cookieParams);
...
session_start();
从这段代码中,我无法修改为每个用户访问创建 2 个会话(一个生命周期为 0,另一个生命周期为 900)。
我还尝试修改 Mage_Core_Controller_Varien_Action::preDispatch() 以实例化每个用户访问的 2 个会话,但它不起作用。
有没有办法让 Magento 用户在 15 分钟后关闭浏览器后注销?
session.gc_maxlifetime 为 86400,session.gc_probability 为 1,session.gc_divisor 为 100。
【问题讨论】:
标签: magento