如何增加cakephp认证组件会话过期时间


How to increase cakephp Auth component session expire time

我正在使用Auth组件来检查用户是否登录。

这是我的AppController的初始化函数

public function initialize()
{
    parent::initialize();
    $this->loadComponent('Flash');
    $this->loadComponent('Auth', [
        'authenticate' => [
            'Form' => [
                'fields' => [
                    'username' => 'username',
                    'password' => 'password'
                ],
                'passwordHasher' => [
                    'className' => 'Md5',//My own password hasher
                ]
            ]
        ],
        'loginAction' => [
            'controller' => 'Dashboard',
            'action' => 'login'
        ]
    ]);
}

工作得很好。但如果我不活动几分钟(比如3-5分钟),然后点击一个链接,它会给我发送登录页面。会话时间似乎过期了。

认证组件共享Session类

为Cakephp3

我们可以在config/app.php中设置超时时间。

'Session' => [
    'defaults' => 'php',        
    'timeout'=>24*60//in minutes
],
为Cakephp2

在Config/core.php

Configure::write('Session', array(
    'defaults' => 'php',
    'timeout' => 31556926 //increase time in seconds
));

认证组件共享Session类。对于CakePHP 3,您可以在config/app.php设置会话超时,如下所示:

'Session' => [
        'defaults' => 'php',
        'timeout'  => 1440, /*24 hours*/
    ],