2012-03-26 6 views
5

私は理解できません..Facebook API経由でログインしたユーザーを特定する方法は?

私のウェブサイトには、facebookのapi JS SDKのFB.loginメソッドのボタンがあります。

ユーザーが初めて自分のウェブサイトにアクセスしたときに、ボタンをクリックすると、自分のFacebookのプロフィールからデータを取得し、データベース内の自分のサーバーでこのIDを持つユーザーがいるかどうかチェックしますか?いいえ - 新しい行を書き込みます。また私は私のウェブサイトでユーザーのプロフィールを作成します。

次回は、ユーザーが次回ウェブサイトを訪れたとき(そして彼がログインしていなければボタンをクリックするとき)、ウェブサイト上の彼のプロフィールと結合する方法を教えてください。たとえば、彼のプロフィールを表示するか、または彼がその中で何かを変更する可能性がある...

通常の承認では、データベース内のパスワードとユーザーのログインを比較しますが、そのような可能性はありません。 AccessTokenは常に変化します。ユーザーのFB idを確認するだけで、誰かが自分のFB idを置き換えて自分のプロフィールに入力することは可能でしょうか?

この場合、どんなトリックが使用されますか?

答えて

6

。このメソッドは、ユーザーがアプリケーションと関係しているかどうかを検証し、ユーザーがアプリケーションを受け入れたときにアクセストークンを与えます。

Facebookのログインを使用してユーザーを認証すると、データベースのユーザー登録にパスワードが含まれていない場合、FacebookアカウントのみがWebサイトのプロファイルと関連します。 facebook idは、サーバサイドでFB.loginメソッドによって提供されるaccesstoken、またはfacebook docsのようにjavascriptで取得することができます。

FB.login(function(response) { 
if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
    }); 
} else { 
    console.log('User cancelled login or did not fully authorize.'); 
} 
}); 

レスポンスオブジェクトでは、facebook id(response.id)を取得できます。

1

Facebook IDを使用してデータベース内のユーザーを識別できます。これは、各Facebookユーザーに固有のものです。

+4

誰でもこのIDを使用して、私のウェブサイトのそのユーザーのIDプロファイルに入ることができますか? – Denis

3

グラフAPI https://graph.facebook.com/me?access_token=USER_ACCESS_TOKENを照会すると、UIDが取得され、DBと比較されます。 Javascript APIを使用しているので、接続されたユーザーのUIDを取得するには、FB.getLoginStatusメソッドを使用する必要があります。

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

FB.init(ステータス:真)とSDKを初期化するときに、この方法は、デフォルトで実行されます。これにより、サイトは既に接続されているユーザーを認識することができます。関係なく、ユーザはいつでもFB.loginメソッドを使用して、あなたのサイトを初めて訪れるかどう

https://developers.facebook.com/docs/reference/javascript/FB.init/

+0

ありがとう! :) – Denis

+0

彼のステータスを取得することによってユーザーを認識しようとすると、UXはパーソナライズされたコンテンツで大幅に改善されます。 – Alexcode

関連する問題