CakePHP 3.6:8小时不活动后,设置数据库会话以注销用户

时间:2019-05-29 11:19:22

标签: php session cakephp

我试图在CakePHP 3.6中设置数据库会话,以便在闲置8小时后注销用户。我创建了表格并将其设置在app.php中:

'Session' => [
        'defaults' => 'database',
        'timeout'  => 480,  // 8 hours, refers to 'session.gc_maxlifetime' in PHP settings
        'cookieTimeout' => 10 * 480, // 80 hours, refers to 'session.cookie_lifetime' in PHP settings 
    ]

但是在数据库中,登录后我可以看到我的会话的expires值是:1559992416,它是最后一次活动时间后的10天(modified值) 。但是,即使我在当前时间之后的2分钟内设置了expires,当我尝试单击应用程序中的按钮时,它也不会注销我。如何正确设置?

1 个答案:

答案 0 :(得分:0)

您必须设置cookie_lifetime

Configure::write('Session', [
    'defaults' => 'php',
    'ini' => [
        'session.cookie_lifetime' => 1800, // Valid for 30 minutes
    ]
]);

有关更多说明,您可以在下面的链接中查看

https://book.cakephp.org/3.0/en/development/sessions.html#setting-ini-directives