2016-10-21 13 views
0

データベースからパスワードを取得するカスタムユーザプロバイダがあります。このパスワードはtext+usernameに基づいています。 symfonyのlogin_check過程でSymfony2 - ログイン確認パスワード

、私はだけでなく、パスワードフィールドに入力されたテキストに基づいて、パスワードフィールドはusername fieldでこのpassword field +入力テキストで入力したテキストに等しいことをしたいと思います。

これを行う方法はありますか?

要するに、私は、ユーザーのプロバイダで定義されたパスワードは、あなたがにも右カスタム認証プロバイダが必要になります_passwordフィールド+ _usernameフィールド

答えて

1

藤堂に等しいかどうかを確認するためにsymfonyを強制したいと思います。あなたはそれを行うためにここにドキュメントに目を通すことができます。

http://symfony.com/doc/current/security/custom_authentication_provider.html

基本的にはデフォルトのクローンを作成し、パスワードチェッカーに変更を加えます。

また、カスタム・ユーザー・プロバイダのドキュメントが示唆としてやってそれを達成することができる場合があります

外部ユーザーが別のメソッドを介して塩漬け自分のパスワードを持っている場合は、あなたが少しを行う必要がありますsymfonyがパスワードを適切にエンコードするようにもっと多くの作業が必要です。これはこのエントリの範囲を超えていますが、MessageDigestPasswordEncoderをサブクラス化し、me​​rgePasswordAndSaltメソッドをオーバーライドすることも含まれます。

http://symfony.com/doc/current/security/custom_provider.html

それは完全なカスタム認証

を書き、その後達成するために簡単かもしれので、あなたは一種の塩としてユーザー名フィールドを使用している可能性があるように思えます