1

マニュアルに従い、FOSUserBundle を拡張した MyBundle を作成しました。

これまでのところすべて正常に動作しています。

1) ユーザーを登録する 2) 彼にメールを送信する 3) 彼のアカウントを確認した (ログインしていることを確認した後) 4) ログアウトする

あとがきログインできません。ユーザーはデータベースで有効になっています。

クエリは実行されますが、ログイン フォーム エラーは「Bad credentials...」です。

security.yml で を使用しています

encoders: 'FOS\UserBundle\Model\UserInterface': sha512

したがって、データベース内のパスワード フィールドでは、sha512 暗号化とソルトの両方が使用されます。

db パスワードとユーザーが提供したパスワードを比較するときに、512 エンコーダーとソルトを使用するように拡張ユーザーを何らかの方法で変更する必要がありますか?

これが問題である場合、誰でもどのクラスで上記を実装するかを知っていますか?

http://symfony.com/doc/current/book/security.html#encoding-the-user-s-password

今は役に立ちません。

または、これをデバッグする方法を教えてもらえますか?

最後に、私は本当にこれに固執しました...

4

2 に答える 2

0

作成したユーザーを含むデータベースを確認してください。次に、任意のユーザーの Db 列名のユーザー テールで確認しenable=1ます。登録ユーザーは、ログインできなかった場合にのみログインenable=1できenable=0ます。

これがお役に立てば幸いです。

于 2012-05-20T10:45:21.007 に答える
0

FOSUserbundle は、フィールド "_password" と "_username" を想定しています。これらのフィールド名をカスタマイズしないと、他のすべてが機能しません。(?)- キャッシュを消去しましたか?

しかし、おそらくそれは本当の問題です。次に、コードを投稿する必要があります。

于 2013-03-22T16:00:27.857 に答える