2012-04-12 10 views
2

私はSymfony2のドキュメントに示されている基本的なログインフォームを使用して、ユーザーが自分自身を認証できるようにしています。Symfony2 - 「デフォルト」のログインフォームのエラーをカスタマイズする

しかし、私はそれをスタイリングの点で少し欠けていることがわかります。

フォームビルダではなく基本HTMLで作成されるため、フォームテーマを使用できません。失敗したログイン試行で生成されたエラーは、フォームの上の1つのブロックに出力されています。私が構築した他のフォームのように見えるように、私はエラーが関係する入力ボックスの隣にエラーメッセージを入れたいと思っています。

フォームビルダーで作成したフォームにフォームを変更しようとしましたが、カスタム認証クラスを作成するという大きな仕事に慣れてきました。

エラーオブジェクトを分割して関連する入力の隣に配置する方法はありますか?完全カスタムフォームとカスタムオーセンティケータを使用することで全面的に進めるべきですか?

答えて

0

異なる認証プロバイダ全体を使わずに、独自のフォームを使用できます。 http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form

コントローラーのアクション、そのアクションを指す/ loginへのルート、および自分のテンプレートを作成します。フィールド名が_usernameと_passwordであることを確認して、バットを無効にするか、単にconfigure themに行ってください。

+0

私はこれを知っています。これは私が持っているものです(あなたが読んでいれば、私はSymfony2ドキュメンテーションの例を使用しました)。問題はエラーの処理方法です。典型的なフォームエラーとは全く異なります。 –

+0

サンプルからわかるように、エラーは実際には引数としてテンプレートに渡され、単純にテンプレートに出力されます。あなたは単純にそれらを分割して、コントローラー内の好きな方法でそれらを変更してから、それらをフォームに渡すことができます。ベストプラクティスは、潜在的な攻撃者が正しいユーザー名を持っているが間違ったパスワードを持っているかどうかを知らせることではありません。いくつかの簡単な検証をしたい場合、私はクライアント側のjavascriptを提案したいと思います。 –

+0

あなたは「単純に分割する」と言っています - どうですか?コントローラのエラーを処理するコードは、私が見た他のものとまったく異なります。ドキュメンテーションで使用されているコードに基づいて、どのように説明することができますか? –

関連する問題