Symfony2.1和AdvancedUserInterface:自定义UserChecker的登录错误消息

Jea*_*ean 1 authentication login exception symfony symfony-2.1

如何在Symfony2.1应用程序中自定义UserChecker类在使用实现AdvancedUserInterfaceUser类时提供的错误消息?

例如,当用户未启用或其帐户已被锁定时,会提供这些消息!

pin*_*een 5

您甚至可以在Symfony 2.0中轻松完成.

没有必要重新实现UserCheckerInterface.

按照此处所述实现登录表单:使用传统登录表单.

$error实际上是AuthenticationException的一个实例.

如果您在模板中显示如下:

{% if error %}{{ error.message|trans }}{% endif %}
Run Code Online (Sandbox Code Playgroud)

...然后您可以使用翻译组件自定义消息,例如.在你的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.'
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你可以免费获得翻译:)

顺便说一下,我读过一个案例研究,建议向用户说明登录确实出错的地方(传递?用户名?)超过了安全问题(在用户体验方面),并大大改善了转换(返回用户).