Перенаправление на реферера не работает после входа

После входа пользователя я хочу перенаправить его обратно туда, откуда он пришел, но в 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 из параметра опции создания формы.

Другие вопросы по тегам