1

AdvancedUserInterfaceを実装するUserクラスを使用するときにUserCheckerクラスによって提供されるエラーメッセージをSymfony2.1アプリでカスタマイズするにはどうすればよいですか?

これらのメッセージは、たとえば、ユーザーが有効になっていない場合、またはそのアカウントがロックされている場合に提供されます。

4

2 に答える 2

5

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の観点から)を上回り、変換(ユーザーを返す)を大幅に改善することを示唆するケーススタディを読みました。

于 2012-12-03T20:07:55.360 に答える
0

この機能はSymfony2.1では利用できません。Symfony2.2の一部としてリリースされる予定です

詳細については、この説明を参照してください。


@JeanValjeanに応じて更新

Symfony \ Component \ Security \ Core \ User\UserCheckerInterfaceを実装できます

次に、次の構成キーを使用して、ユーザーチェッカーをクラスに設定します。

security.user_checker.class = My\User\Checker\Class.
于 2012-09-24T16:39:28.873 に答える