1

Facebook 接続 (o-Auth) を介してユーザーを認証する Web アプリを作成しました。ユーザーが認証された後、私は Facebook トークンを持っています。このトークンを使用して、Facebook にリクエストを送信し、基本的なユーザー情報を取得します。この時点で、私はユーザー固有の Facebook ID を持っており、それが誰であるかを知っています。

  1. ユーザー、トークン、およびデータベース内のデータをどのようにリンクすればよいですか? 現在、私のスキーマは非常に単純です。facebook_id が主キーで、トークンとユーザーのデータを含む他の列がいくつかあります。それは正しい方法ですか?

  2. ユーザー要求で一意の SESSION_ID (Cookie) を設定する必要があるのはどの時点ですか? 認証後?私はこの部分(および一般的なセッション管理)について混乱しています。セッションに属性を設定すると、ブラウザはそれを記憶し、サーバーへのすべてのリクエストで送信しますか? 全ページ?

  3. 最も重要な質問は、SESSION ID とユーザーをどのようにマッピングするかということです。彼のリクエストにセッションIDを設定したら、リクエストごとにそれが誰であるかを把握する必要があります。それを行う最良の方法は何ですか?

4

1 に答える 1

1
  1. それは問題ありません。本当にやりたいことは、特定の Facebook ユーザー ID と、Graph API からではなく、Web アプリによって作成されたデータまたは Web アプリ内で作成されたデータを照合できるようにすることだけです。
  2. ログイン フローを完了した時点 (アクセス トークンを受け取った時点) です。セッションを設定すると、セッションがクリアされるまで、ブラウザーはキーと値のペアを記憶します。そのため、ブラウザを使用している誰かをデータベース内の特定のユーザーに関連付けることができるコードが必要です (セッションがない場合は関連付けられません)。したがって、使用するセッション値が何であれ、これもユーザー ID とともにデータベースに保存する必要があります。
  3. 上記を参照。

正直なところ、これを行う最も簡単な方法は、Facebook Javascript SDK を使用することです。これにより、すべてのアクセス トークンの取得と Cookie を介したユーザーの永続化が自動的に処理され、コードを記述する必要がなくなります。最終的にこれは、アプリで生成されたコンテンツと一緒に Facebook ユーザー ID をデータベースに保存するだけでよく、アクセス トークンやセッション変数の保存について心配する必要がないことを意味します。ここに簡単なステップバイステップのガイドがあります: https://developers.facebook.com/docs/howtos/login/getting-started/
(ステップ 5 でユーザー ID を受け取り、AJAX 呼び出しを行うことができます)ここからのサーバー側コードをデータベースに保存します)

于 2012-11-02T17:14:06.553 に答える