Как убить сессию в cakephp - PullRequest
       3

Как убить сессию в cakephp

2 голосов
/ 11 февраля 2011

Я работаю над модулем входа в систему. В функции выхода из системы я создаю код, как показано ниже, сначала прерву сеанс, а затем перенаправлю его на домашнюю страницу. Работает нормально, но сессия не разрушает. Если кто-нибудь знает, пожалуйста, помогите мне Вот мой фрагмент кода для входа и выхода:

function login()
{

   if(!empty($this->data))
    { 

       $user1= $this->User->validateLogin($this->data['User']);

         if($user1== true)
        {

               $this->redirect(array('action'=>'index'));
        }
        else
        {
                $this->Session->setflash('Login failed, Try again'); 
         }
    }
}

function logout()
{

    $this->Session->delete('User');
    $this->redirect('/users/index');
}

Я получил информацию о том, что я должен сохранить информацию заголовка, ниже приведен мой фрагмент кода: заголовок $ this-> («Cache-Control: no-cache, no-store, must-revalidate»); заголовок $ this-> («Истекает: понедельник, 1 января 1970 г., 00:00:00 по Гринвичу»);

Но я не получаю, в какую часть моего контроллера я должен вставить этот код? Пожалуйста, помогите мне ....

Ответы [ 3 ]

8 голосов
/ 11 февраля 2011

Попробуйте $ this-> Session-> destroy (); Метод destroy удалит cookie сеанса и все данные сеанса, хранящиеся во временной файловой системе. проверьте ссылку

2 голосов
/ 20 мая 2012

Вы получаете перенаправление, потому что это не разрешено, а не из-за перенаправления в вашей функции выхода из системы.Вы также должны разрешить использование функции выхода из системы в предварительном фильтре вашего контроллера (CakePHP 2):

$this->allow('logout');
1 голос
/ 23 июля 2012

вы не хотите убивать сеанс. только чтобы выйти из системы!

$this->Session->delete('Auth');

в противном случае вы уничтожаете куки и другие пользовательские настройки, которые могут быть довольно раздражающими (язык, ...)

но официальный путь к тортам будет:

$this->redirect($this->Auth->logout());
...