0

Facebook認証を実行する独自の認証プロバイダーを実装しました。これは、1つのリクエストに対してのみ機能し、次のようになります。

There is no user provider for user "Nourdine\BasicBundle\Security\User\FacebookUser"

事は:

1-FacebookProviderが存在し、キックしています。2-私はそれをサービスとして登録しました:

  <service id="facebook_user_provider" class="Nourdine\BasicBundle\Security\User\FacebookUserProvider" />

3-そしてそれをsecurity.xmlで利用可能にしました

最初の質問:なぜ彼は今それを「見る」のですか?2番目の質問:認証プロバイダーを実装するたびに、関連するユーザープロバイダーを作成する必要がありますか?

ありがとう

4

1 に答える 1

0

ユーザー プロバイダーの refreshUser メソッドに問題があると思います。このメソッドは、セッションの永続性 (トークンがシリアル化されてセッションに保存される) を使用するときに使用されるため、ユーザーはデータベース (または他の場所) の次の要求から取得できます。

  1. プロバイダがサービスとして登録され、security.yml でサービス ID が使用されていることがわかります。
  2. UserProvider は、データベースまたは他のレイヤー (Web サービスなど) からユーザーをフェッチし、AuthenticationProvider はユーザーを認証し (認証ロジックを実行)、プロバイダーを使用できますが、Symfony\Component\Security\Core\User\UserProviderInterface具体的な実装を使用しない場合はほとんど必要ありません。だから義務じゃない
于 2012-12-21T21:49:43.383 に答える