Перенаправление на реферера не работает после входа
После входа пользователя я хочу перенаправить его обратно туда, откуда он пришел, но в CakePHP 3.5 это работает неправильно. Вот необходимая информация, чтобы помочь мне разобраться в этой проблеме.
URL при входе в систему (время ожидания сеанса),
http://dev.scys.com/db/admin?redirect=%2Fadmin%2Fstatuses
Это мой конфиг Auth,
$this->loadComponent('Auth', [
'loginAction' => ['controller' => 'Admins', 'action' => 'login'],
'loginRedirect' => ['controller' => 'Admins', 'action' => 'index'],
'logoutRedirect' => ['controller' => 'Admins', 'action' => 'login'],
'unauthorizedRedirect' => $this->referer(),
'authenticate' => [
'Form' => [
'finder' => 'auth',
'userModel' => 'Admins',
'fields' => ['username' => 'username', 'password' => 'password']
]
]
]);
И в методе входа / действия
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
}
Больше очков
Я также пытался $this->redirect($this->request->getQuery('redirect'));
Я что-то упускаю или что-то еще, что я должен добавить, чтобы решить это:(
1 ответ
Я понял свою ошибку, На самом деле, я использовал для действия URL, как,
$this->Form->create(NULL, ['url'=> ['controller' => 'Admins', 'action' => 'login'],'style'=>'display: block;');
Из-за этого URL стал "admins/login" и строка запроса перенаправления была удалена, поэтому возникла проблема, потому что "$this->redirect($this->Auth->redirectUrl());
msgstr "не нашел ни одной строки запроса на перенаправление (согласно случаю 1), поэтому он использует $this->Auth->config('loginRedirect');
(согласно случаю 2).
Затем я решаю эту проблему, удаляя ключ и значение URL из параметра опции создания формы.