2015-06-07 100 views
8

我使用驗證組件來檢查用戶登錄。如何增加CakePHP的驗證組件會話過期時間

這裏是我的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' 
     ] 
    ]); 
} 

其工作fine.But如果我留不活躍幾分鐘(如3-5分鐘),並去(點擊)一個鏈接它發送我登錄頁面。它似乎會話時間過期。

如何或在哪裏我可以增加這個時間。

回答

21

驗證組件股Session類

對於Cakephp3

在配置/ app.php我們可以設置超時時間。

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

對於Cakephp2

在配置/ core.php中

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

嗨,確實有可能增加會話時間在應用程序控制器或任何其他controller.Because我如何動態地更改會議時間管理panel.using蛋糕php3 –

+0

@RaghulRajendran是的,你可以。檢查這個鏈接https://book.cakephp.org/3.0/en/development/sessions.html –

1

驗證組件共享Session類。對於CakePHP的3你可以在config/app.php設置會話超時象下面這樣:

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

爲什麼要使用塊註釋/ * * /而不是使用行註釋//或#;) –