Переопределить BadCredentialsException при ошибке входа в систему с помощью symfony и FOSUserBundle - PullRequest
0 голосов
/ 17 февраля 2019

Я использую Symfony 2.8 с версией FriendsOfSymfony / FOSUserBundle 2.12.

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

, но вместо этого я получаю то же сообщение об ошибке" Неверные учетные данные "на этихВышеуказанные условия.

после дальнейшего исследования я обнаружил, что Symfony скрывает исключение UsernameNotFoundException в файле UserAuthenticationProvider.php в методе authenticate:

    try {
        $user = $this->retrieveUser($username, $token);
    } catch (UsernameNotFoundException $e) {
        if ($this->hideUserNotFoundExceptions) {
            throw new BadCredentialsException('Bad credentials.', 0, $e);
        }
        $e->setUsername($username);

        throw $e;
    }

I Дамп объекта ошибки в форме входа.Вот скриншот: enter image description here:

У всех есть идеи, как получить конкретное сообщение об ошибке.Заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете установить его в своем security.yml:

security:
   hide_user_not_found: false

Пожалуйста, смотрите этот ответ для более подробной информации: Управление Symfony BadCredentialsException коды

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