knpuniversity oauth2client ожидаемое состояние часто пусто - PullRequest
0 голосов
/ 23 октября 2019

vendor / knpuniversity / oauth2-client-bundle / src / Client / OAuth2Client.php:

enter image description here

Когда я выхожу из системы и пытаюсь войти в системус Facebook снова, часто я получаю это исключение - InvalidStateException. Msgstr "Пользователь видит неверный параметр состояния, переданный в URL обратного вызова."Это потому, что нет данных в сессии. Но почему это может произойти?

Используя этот пакет:

https://github.com/knpuniversity/oauth2-client-bundle

Это вызвано из моего класса аутентификатора facebook:

public function getCredentials(Request $request)
    {
        // this method is only called if supports() returns true

        return $this->fetchAccessToken($this->getFacebookClient());
    }

Такжезаметил, что если я попытаюсь снова войти в систему с Facebook после этого исключения, то он успешно войдет в систему. Но позже заметил, что это тоже не всегда так.

Я думаю, что где-то есть что-то, связанное с состоянием гонки, потому что когда я использую xdebug и код останавливается в точке останова, это часто работает нормально.

1 Ответ

0 голосов
/ 24 октября 2019

Проблема заключалась в том, что Chrome отправлял 2 запроса из-за предварительной выборки.

https://www.keycdn.com/support/prefetching

Когда я вписываю URL в адресную строку (для тестирования я еще не сделал кнопку facebook), Chrome мгновенно загружаетсяЭто. Затем я нажимаю Enter, и он загружается снова. И все начинает происходить неожиданно, когда есть 2 запроса на вход через Facebook.

Протестировано на Firefox, такой проблемы нет. Когда я сделал ссылку для входа в Facebook, и мне не нужно вводить в адресной строке, это также не делает предварительную выборку, и проблема исчезла и на Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...