CakePHP: перенаправление пользователей из/если они аутентифицированы

99
10

На CakePHP 2.2 с использованием AuthComponent лучший способ перенаправить пользователя с '/' на '/users', если они уже прошли аутентификацию? Все мои поиски только что открыли информацию об AuthComponent loginRedirect и связанных с ним. Я прочитал сообщение, в котором подробно описывается изменение маршрутов (в 1.x), но я не был уверен, что это был лучший способ. Я мог бы также вставить

if($path[0] == 'home' && $this->Session->check('Auth.User')){
$this->redirect('/users/');
}

в PageController :: display(), но опять же, не уверен, является ли это наиболее желательным методом

Страница индекса для этого приложения будет просто страницей с просьбой зарегистрироваться или войти в систему, поэтому это не имеет большого значения для участников, которые уже вошли в систему.

Редактирование: после пересмотра метода beforeFilter() я придумал

public function beforeFilter() {
$this->Auth->allow('*');

if($this->request->params['pass'][0] == 'home' && $this->Session->check('Auth.User'))
$this->redirect('/users');
}

но это кажется действительно статичным.

спросил(а) 2021-01-25T20:06:15+03:00 4 месяца, 4 недели назад
1
Решение
89

Правильный способ - перенаправить пользователя из метода beforeFilter. Перенаправление из.ctp файла не очень хорошо.

//В PagesController.cpp

beforeFilter() {
if($path[0] == 'home' && $this->Session->check('Auth.User')){
$this->redirect('/users/');
}
}

Что-то вроде:
Проблема с перенаправлением компонента CakePHP Auth

ответил(а) 2021-01-25T20:06:15+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема