我在一个网站上使用CakePHP,我想知道如何在会话过期时自动重定向?
答案 0 :(得分:9)
会话到期等同于用户退出您的应用。您可以设置变量
$this->Auth->logoutRedirect = array('component'=>'YourComponent','action'=>'YourAction');
这将取得类似的结果。您希望在AppController的beforeFilter()中设置它。
如果要在会话到期的第二个时间内重定向用户,则需要滚动一些自定义javascript才能实现此效果。您可以从确定会话到期之前的大致秒数开始,将其传递给javascript setTimeout()调用并触发强制用户注销的函数。这种方法有一些注意事项,但它也可以正常工作。
答案 1 :(得分:0)
使用您的组件($ components),您可以选择登录细节和lougout,例如会话结束时的重定向页面。
public $components = array(
'Session'=>array(
'timeout' => 620
),'Auth' => array(
'loginRedirect' => array(
'controller' => 'pages',
'action' => 'display',
'home'
),
'logoutRedirect' => array(
'controller' => 'users',
'action' => 'login'
),
'authenticate' => array(
'Form' => array(
'passwordHasher' => 'Blowfish'
)
)
)
);