FOSUserBundle настроить процесс входа в систему

В настоящее время я использую FOSUserBundle в своем проекте на основе Symfony 3.4. У нас запланированы некоторые изменения внешнего интерфейса, и я хочу интегрировать форму входа в стандартный шаблон страницы, чтобы незарегистрированные пользователи могли входить в систему, где бы они ни находились в приложении.

В моем файле шаблона я вызываю: {{ render(controller('FOSUserBundle:Security:login')) }}. Это правильно отображает форму входа на соответствующих страницах.

Однако у меня есть две проблемы, которые я не могу понять, как преодолеть...

  1. Если пользователь вводит неверные учетные данные, как я могу вернуть пользователя на страницу, на которой он был, а не на маршрут /login?

  2. Как я могу перехватить сообщение об ошибке (неверные учетные данные и т. д.)? Я хотел бы сделать это флэш-сообщением, а затем отобразить его в другом месте основного шаблона.

С удовольствием предоставим дополнительную информацию, если потребуется.

т2т

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
101
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете создать прослушиватель событий на «onAuthenticationFailure». Вы получите запрос и реферера.

Это было почти то, что мне было нужно! Спасибо!

tip2tail 31.01.2019 17:30

В твоем случае; вам нужно создать пользовательскую страницу входа.

Для этого;

1- Создайте свой собственный SecurityController.php. Затем скопируйте метод «loginAction» и «renderLogin» из оригинального friendsofsymfony/user-bundle/SecurityController.php SecurityController, вставьте в него и добавьте путь /login к loginAction.

2- Создайте свой собственный login.html.twig. Затем скопируйте содержимое login_content.html.twig из friendsofsymfony/user-bundle/Resources/Security/login_content.html.twig и вставьте в свой собственный.

3- Измените возврат renderLogin на свой собственный login.html.twig.

После этих шагов вы можете изменить все, что хотите. Если вы хотите изменить маршрут после неправильных учетных данных, проверьте переменную $error и выполните перенаправление.

Извините, это не то, что я имел в виду - я уже переопределяю эти файлы, и это не решение.

tip2tail 31.01.2019 17:30

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