私はFOSUserBundleでSymfony2.1を使用していて、すべてが完全に機能していますが、問題を解決する方法がわかりません。
基本的に、他のエンティティとの関係を考慮して、データベースからユーザーを検索(ロードまたは取得)する方法があるかどうかを知りたいです。
これは状況です:
ユーザーがソーシャルネットワーク(Google、Facebook、LinkedInなど)を介して自分のサイトにログインできるようにしました。また、オフラインアクセスを依頼するので、いつでもソーシャルアカウントにアクセスできます。
各ユーザーは必要な数の接続を持つことができるため(または、オプションであるために接続がない場合もあります)、この情報をユーザーテーブルに保存しないことにしました。私は「SocialConnection」と呼ばれる抽象的なエンティティを作成しました。これは実際のエンティティ(Google、Facebookなど)によって拡張されています。このエンティティには、ユーザーがこれらのネットワーク(user_id、social_id、access_tokenなど)を介してサイトにログインしたときに取得するユーザー情報を格納するため、Userクラスに、抽象「SocialEngine」のコレクションをマッピングしました。すべてのネットワークを一緒にする。
将来的にツイッターやヤフーなどのネットワークを追加できるようにするためには、そうあるべきだと思います。
したがって、問題は、ユーザーがこれらのソーシャルネットワークのいずれかを介して私のサイトにログインするときに、彼のソーシャルIDを知っているデータベースからユーザーをロードする必要があるということですが、その方法がわかりません。
UserManagerのメソッド$this->findUserByがプロパティに関するユーザーを検索することを確認しましたが、そうではないと思います。
良い解決策を見つけるにはどうすればよいですか?
前もって感謝します。
よろしく、イジー。