$ this-Session-> destroy () не разрушает сеанс? v. cakephp 2.0 - PullRequest
1 голос
/ 14 февраля 2012

my UserController.php имеет функцию выхода из системы, которая выглядит следующим образом

 function logout()
    {
        $this->Session->destroy('User'); 
        $this->Session->setFlash('You\'ve successfully logged out.');
        var_export($this->Session->read('User'));

        //$this->redirect('login'); 
    }

my view Users / index.ctp

<?php echo $this->Html->link('Logout', array('controller' => 'users', 'action' => 'logout')); ?>

Когда я нажимаю «выйти», var_export по-прежнему отображаетсявсе данные пользователя, и если я вернусь к Users / index.ctp, он все равно покажет мне эту страницу, хотя в моем моем UserController.php я проверяю, установлен ли пользователь

    function beforeFilter() 
{   
    $this->__validateLoginStatus(); 
}   


function __validateLoginStatus() 
    {   
        if($this->action != 'login' && $this->action != 'logout') 
        {
            if($this->Session->check('User') == false)
            {
                $this->redirect('login');
            }
        }

. Он не перенаправляет настраница входа и просто приводит меня на главную страницу.} * +1010 *

Ответы [ 2 ]

3 голосов
/ 14 февраля 2012
$this->Session->destroy();

Метод уничтожения удаляет cookie сеанса и все данные сеанса, хранящиеся во временной файловой системе.

Пользователь, чтобы удалить, используйте лучше удалить.

$this->Session->delete('User');
0 голосов
/ 14 февраля 2012

Если вы используете AuthComponent для аутентификации пользователей, вы можете выйти из них, используя метод logout ().

$this->Auth->logout();

См. http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#logging-users-out для Cake 2 или http://book.cakephp.org/1.3/en/view/1262/logout для Cake 1.3

И если вы вообще не используете AuthComponent, вам, возможно, стоит взглянуть на него, так как он содержит из коробки множество функциональных возможностей, которые у вас уже есть или, скорее всего, вы реализуете сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...