AdvancedUserInterfaceを実装するUserクラスを使用するときにUserCheckerクラスによって提供されるエラーメッセージをSymfony2.1アプリでカスタマイズするにはどうすればよいですか?
これらのメッセージは、たとえば、ユーザーが有効になっていない場合、またはそのアカウントがロックされている場合に提供されます。
AdvancedUserInterfaceを実装するUserクラスを使用するときにUserCheckerクラスによって提供されるエラーメッセージをSymfony2.1アプリでカスタマイズするにはどうすればよいですか?
これらのメッセージは、たとえば、ユーザーが有効になっていない場合、またはそのアカウントがロックされている場合に提供されます。
Symfony2.0でも簡単にできます。
を再実装する必要はありませんUserCheckerInterface
。
ここで説明されているようにログインフォームを実装します:従来のログインフォームの使用。
$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.'
そうすれば、無料で翻訳を入手できます:)
ところで、私は、ログインで何がうまくいかなかったのか(pass?username?)をユーザーに指定することが、セキュリティの問題(UXの観点から)を上回り、変換(ユーザーを返す)を大幅に改善することを示唆するケーススタディを読みました。
この機能はSymfony2.1では利用できません。Symfony2.2の一部としてリリースされる予定です
詳細については、この説明を参照してください。
@JeanValjeanに応じて更新
Symfony \ Component \ Security \ Core \ User\UserCheckerInterfaceを実装できます
次に、次の構成キーを使用して、ユーザーチェッカーをクラスに設定します。
security.user_checker.class = My\User\Checker\Class.