Запретить пользователю вход в Symfony - PullRequest
0 голосов
/ 10 мая 2018

Я создал пользовательскую форму для входа и хочу запретить пользователю вход в систему для этого случая:

У меня есть одно поле password_changed_date в таблице users.Я хочу сравнить эту дату с текущей датой, и если разница превышает 6 месяцев, пользователь должен быть перенаправлен на другую страницу.Как я могу это сделать?

1 Ответ

0 голосов
/ 10 мая 2018

Чтобы пользователь не мог войти в систему после истечения срока действия его учетных данных, вы можете использовать AdvancedUserIternface.Среди прочего, этот интерфейс предоставляет метод с именем isCredentialsNonExpired(), который соответствует вашим потребностям.Эти методы автоматически проверяются компонентом безопасности Symfony при реализации этого интерфейса.Для всех других методов, требуемых интерфейсом, вы всегда можете вернуть true, если они вам не нужны.

Это приведет к сбою входа в систему и перенаправит вас обратно в форму входа, как если бы вы ввелиневерный пароль.В вашем loginAction вы можете использовать AuthenticationUtils, чтобы получить последнюю ошибку, используя getLastAuthenticationError().Это позволит вам отреагировать на ошибку.Например, вы можете проверить сообщение об ошибке, а затем выполнить перенаправление на специальную страницу, которую хотите отобразить.

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