現在、Oauthを使用して、ユーザーがFoursquareを介してサインインできるようにしています。次に、このユーザーの新しいセッションを作成します。ユーザーがHunchを介してサインインするように求められたシステムを初めて使用する場合、これにより、両方のシステムからの情報に基づいてユーザープロファイルを生成できます。両方とも別々に各アプリケーションにサインインしていますが、FoursquareでログインしているユーザーをHunchのユーザーに関連付けるにはどうすればよいですか。私の考えは、ユーザーモデルでセッションIDへの参照を作成するか、セッションIDをハンチサインインのパラメーターとして使用することでしたが、これが最善の方法かどうかはわかりません。アソシエーションを作成する他の方法はありますか?
2 に答える
これを行う最も簡単な方法は、次のようなものです。
- サインインするには、ユーザーをフォースクエアに送ります
- ユーザーが戻ってきたら、データストアにレコードを作成します。
- ユーザーをHunchに送信してサインインしますが、手順2で作成したレコードのIDを続行URLに含めます。
- ユーザーが戻ってきたら、URLに埋め込まれているIDを使用して、ユーザーのハンチ情報をユーザーレコードに追加します。
とSiteUser
の親になるように親の関連付けを作成できます。FoursquareAuth
HunchAuth
ユーザーが最初にFoursquareでログインするときに、SiteUser
モデルを作成してから、でモデルを作成FoursquareAuth
しparent=just_created_user
ます。次に、ユーザーを送信してハンチを介して認証する場合、コールバックパラメーターにユーザーのIDまたはセッションIDを含めます。コールバックが発生すると、ユーザーのキーを取得し、で作成HunchAuth
しparent=previously_created_user
ます。
モデルには、両方のソースからのSiteUser
結合された情報(名前、場所、最終チェックインなど)が含まれています。モデルには、*Auth
各プロバイダーから提供される保証された一意の識別子(user_id、access_tokenなど)が含まれています。
このように、ユーザーオブジェクトがある場合は、FoursquareまたはHunch認証データ(祖先フィルターを使用)のいずれかを見つけることができ、任意の*Auth
モデルをロードしてそのをフェッチすることでユーザーを見つけることができますparent()
。
(注:App Engineで使用可能なオブジェクトSiteUser
と混同しないようにモデルを呼び出します)User