私はPHP Webアプリケーションを持っています。私はFacebookログインを実装しようとしています。私はこのようなプロセスを設計しました:どのようにユーザーが本当にFacebookのログインをしたことを確認するには?
- ユーザーはFBログインボタンをクリックします。
- ログイン処理(AJAX)を開始するためのリクエストがFacebookに送信されます。
- コード内のJavascriptコールバック関数が呼び出され、ユーザーにログインが完了したことが通知されます。
- 私のjsコードは、ユーザーの詳細(名前とメールのようなもの)を取得するFacebook APIを呼び出します。
- My JSコードは取得したデータをサーバーコード(PHP)に送信します。セッションコードにユーザーの電子メールを保存すると、ユーザーは認証されたままになります。
私が恐れているのは、誰かがステップ5でリクエストを偽装してPHPアプリケーションにユーザの電子メールと名前を送信することが容易であるということです。
私の質問は:どのようにPHPのサーバーコードは、フェイスブックのログインが行われ、送信された電子メールはログインに使用されることを確認できますか?
ステップ2:私はそこに方法があるとは思わないが、Facebookはちょうどあなたにフォームを与えたり、ログインページに強制的にリダイレクトしたりして、ボタンを続けるか、ボタンを続行しますか?まだログイン資格情報を送信し、成功すれば返すメソッドを見たことがありません – Beginner
トークンを使用するステップ2の後、 'https://graph.facebook.com/me?access_token= [token]'を呼び出すことができます。返されるオブジェクトには、FBクライアント側から受け取ったものと照合するための 'email'が含まれています。効果的には、セキュリティ対策としてトークンサーバー側を検証しています。 – G0dsquad
クライアント側のデータを要求せず、サーバーに送信しないでください。アクセストークン_only_をサーバーに送信し、そこからAPIリクエストを作成します。 // https://developers.facebook.com/docs/facebook-login/security – CBroe