如何使用用户类在 Symfony2.1 应用中自定义 UserChecker 类提供的错误消息实现 AdvancedUserInterface ?
例如,当用户未启用或其帐户已被锁定时,会提供这些消息!
答案 0 :(得分:5)
即使在Symfony 2.0中也可以轻松完成。
无需重新实现UserCheckerInterface
。
按照此处所述实施登录表单:Using a Traditional Login Form。
$error
实际上是AuthenticationException的实例。
如果您在模板中显示如下:
{% if error %}{{ error.message|trans }}{% endif %}
...然后您可以使用翻译组件自定义消息,例如。在 messages.en.yml :
中'User account is locked.': 'Your account has been locked by administrator.'
'The presented password is invalid.': 'Invalid password.'
'Bad credentials': 'Invalid username.'
如果你这样做,你可以免费获得翻译:)
BTW我读过一个案例研究,建议向用户说明登录确实出错的地方(传递?用户名?)超过了安全问题(在用户体验方面)并大大改善了转换(返回用户)答案 1 :(得分:0)
Symfony 2.1中没有此功能。它计划作为Symfony 2.2的一部分发布。
有关详细信息,请参阅此discussion。
更新以回应@JeanValjean
您可以实施Symfony\Component\Security\Core\User\UserCheckerInterface
然后使用以下配置键将用户检查器设置为您的班级。
security.user_checker.class = My\User\Checker\Class.