FOSUserBundle настроить процесс входа в систему - PullRequest
0 голосов
/ 31 января 2019

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

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

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

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

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

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

t2t

Ответы [ 2 ]

0 голосов
/ 31 января 2019

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

Для этого;

1- Создайте свой собственный SecurityController.php.Затем скопируйте в него метод loginAction и renderLogin из оригинального SecurityController friendsofsymfony/user-bundle/SecurityController.php и добавьте /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 и выполните перенаправление.

0 голосов
/ 31 января 2019

Вы можете создать eventListener на 'onAuthenticationFailure'.Вы получите запрос и реферер.

...