CakePHP ошибка перенаправления входа - PullRequest
0 голосов
/ 10 мая 2011

У меня есть следующий код в методе входа в систему, чтобы перенаправить пользователя на предыдущую страницу и показать ему сообщение «Добро пожаловать обратно».Я отключил autoRedirect, чтобы дать мне контроль, чтобы я мог показывать флэш-сообщение и выполнять другие действия при входе в систему.

    if(!(empty($this->data)) && $this->Auth->user())
    {
        $this->Session->setFlash('Welcome back! <strong>' . $this->User->field('firstname') . '</strong>', 'flash');

        $this->redirect($this->Auth->redirect($this->referer()));
    }

Это прекрасно работает при использовании форм входа в систему, которые находятся в заголовке, но при входе изФактическая автономная страница входа в систему перенаправляет пользователя НАЗАД на страницу входа в систему и показывает ошибку, сообщающую, что их имя пользователя и пароли были неверными, а также сообщение приветствия.Хотя пользователи вошли в систему и могут получить доступ к соответствующим страницам, НО я не хочу, чтобы они перенаправляли обратно на страницу входа.Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 10 мая 2011
if(!(empty($this->data)) && $this->Auth->user())
        {
            $this->Session->setFlash('Welcome back! <strong>' . $this->User->field('firstname') . '</strong>', 'flash');

            //$this->redirect($this->Auth->redirect($this->referer()));

            if($this->referer(array('controller' => 'users', 'action' => 'login')))
            {
                $this->redirect(array('controller' => 'home', 'action' => 'index'));
            }
            else
            {
                $this->redirect($this->Auth->redirect($this->referer()));
            }
        }
0 голосов
/ 10 мая 2011

Вы можете проверить, является ли реферер страницей входа, и если да, перенаправить их на домашнюю страницу.

Отредактировано, чтобы добавить пример кода:

if($this->referer()=='/users/login'){
    $this->redirect('/');
}else{
    $this->redirect($this->Auth->redirect($this->referer()));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...