1

I'm using CakePHP in one website and I was wondering how can I automagically redirect when the session has expired?

4

2 回答 2

9

会话过期相当于用户退出您的应用程序。你可以设置变量

$this->Auth->logoutRedirect = array('component'=>'YourComponent','action'=>'YourAction');

这将达到类似的结果。您想在 AppController 的 beforeFilter() 中设置它。

如果您想在会话过期的那一刻重定向用户,您将需要滚动一些自定义 javascript 来实现此效果。您可以从确定会话到期前的大致秒数开始,将其传递给 javascript setTimeout() 调用并触发强制用户注销的函数。这种方法有一些注意事项,但它也同样有效。

于 2010-07-27T14:56:26.163 回答
0

使用您的组件($components),您也可以选择登录详细信息和注销,例如会话关闭时的重定向页面。

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'
            )
        )
    )
);
于 2015-04-20T13:09:39.367 回答