おそらく私はこれを間違った方法で行っていますが、Facebook のログインを許可する Web サイトを持っています。
- ユーザーがすでに私のウェブサイトに登録している場合
- Facebookにログインしていますが、私のサイトにはログインしていません
ログインページにアクセスするとき、Facebookのログインステータスを確認し、経由して取得します
response.status === 'connected'
-FB.Event.subscribe('auth.authResponseChange', function (response) { if (response.status === 'connected') { var s = JSON.stringify(response.authResponse); LogMeIn(s, function(response) { HandleAjaxError(response, function(msg) { window.location = '/_/'; }); }); } }
次に、authResponse オブジェクトをサーバーに渡し、このユーザーとしてログインする前に、このユーザー ID がこのトークンで機能することを確認します。
私は単にjsonの内容を取得するために読んだ -
https://graph.facebook.com/ {userID}?access_token={accessToken}
エラーが返されない場合は問題ありません。しかし、このメソッドをテストすると、同じ access_token が 2 つの異なるユーザー ID に対して機能することがわかりました (つまり、コンピューターにログインしていないユーザー ID に対してエラーが返されませんでした)。代わりに、名前、場所などを含む Facebook ユーザー オブジェクトを返しました。
access_token
to work only with a single user
idを期待していたので、これには本当に驚きました。
誰かがスクリプトを続行する前にユーザー ID を変更するのを防ぐために、サーバー側で認証する必要があります。これを達成する方法は何ですか?
証拠、これらのリンクにアクセスしてプロフィール情報を確認してください
私のプロフィール-
同じ access_token を持つ別のユーザー ID-