PHP
Symfony2
symfony3

Symfony3の認証エラー時のメッセージを変更する


概要

Symfonyのデフォルトの機能で認証処理を実装するとエラーメッセージが「資格が無効です。」となりユーザーフレンドリーではないため変更する。

UserAuthenticationProviderクラスで「Bad credentials.」と返しているため、これを翻訳している。

ここのメッセージを変更するためだけに独自Providerを作るのはカナリ手間なので翻訳を書き換えて対応する。


環境


  • PHP → 7.1.23

  • symfony/symfony → v3.4.18


Configの言語指定の確認

「jp」ではなく「ja」である事に注意


app/config/config.yml

parameters:

# デフォルトだと「en」
locale: ja


翻訳の書き換え


app/Resources/translations/messages.ja.yml

# ログインエラー時のメッセージがユーザーフレンドリーではないため

Bad credentials.: "ユーザー名もしくはパスワードが間違っています。"


エラーメッセージ表示の準備


app/Resources/views/admin/login_sample.html.twig

<body>

<div class="login-form" >
<h1>管理画面ログイン</h1>
{% if error %}
<div class="alert-danger p-2">
{{ error.message | trans }}
</div>
{% endif %}
<form action="" method="post" >
{# ... #}
</form>
</div>
</body>