我已经创建了一个自定义登录表单,我想在这种情况下阻止用户登录:
我在users表中有一个字段password_changed_date。我想将该日期与当前日期进行比较,如果差异超过6个月,则应将用户重定向到其他页面。我该怎么做呢?
发布于 2018-05-10 22:14:07
为了防止用户在其凭据过期时登录,您可以使用AdvancedUserIternface。此外,该接口还提供了一个名为isCredentialsNonExpired()的方法,可以满足您的需要。当您实现该接口时,Symfony的安全组件会自动检查这些方法。对于接口所需的所有其他方法,如果您不需要它们,则可以始终返回true。
这将导致您的登录失败,并将您重定向回登录表单,就像您输入了错误的密码一样。在您的loginAction中,您可以使用AuthenticationUtils通过getLastAuthenticationError()获取最后一个错误。这将允许您对错误做出反应。例如,您可以检查错误消息,然后执行重定向到要显示的特殊页。
https://stackoverflow.com/questions/50273540
复制相似问题