web-dev-qa-db-ja.com

Facebook oauth URLとパラメーターのオプションを承認する

Facebookは、oauthloginのパラメーターに関するいくつかのドキュメントを提供しています。

ログインダイアログOAuth 2

パラメータは次のとおりです。

  • client_id =アプリID
  • redirect_uri =アプリのウェブサイトのURL
  • 表示=ページ、ポップアップ、iframe、非同期、タッチ。ログインの表示方法。
  • スコープ=権限名。アプリがユーザーにアプリに付与するように求めている権限。
  • state =アプリへの応答に含まれる文字列。
  • response_type =コードまたはトークンまたはその両方。承認フローに応じてさまざまな方法で使用されます。

さまざまなタイプのoauth機能とそれに付随するパラメーターに関する詳細情報はありますか?

oauthのURLを構成する方法についての情報が必要です。私はいくつかの構成を知っています。例えば:

https://www.facebook.com/dialog/oauth?
   client_id=YourAppID
   &redirect_uri=The URL that you designated in your App Settings for your App
   &response_type=token //Whether you want a `code` returned, or a `token` returned, or both
   &scope=publish_stream // scope prompts the user for the type of permissions being asked for

私はこれを示す議論を見ました:

https://graph.facebook.com/oauth/authorize?
   client_id=123456789
   &redirect_uri=http://example.com/
   &scope=publish_stream,share_item,offline_access,manage_pages

URLの違いに注意してください。

/dialog/oauth?

または

/oauth/authorize?

authorizeは何をしますか?パーミッションを要求する代わりにパーミッションを付与しますか?これに関するドキュメントはどこにありますか?

9
Alan Wells

https://graph.facebook.com/oauth/authorizeもその人にログインすることです-認証のように人とアプリによって要求された許可にアクセスするかどうか人から許可を取得します。

oauth/authorizeはグラフAPI呼び出しです。主な違いは、ログインフローを手動で構築する場合は、/ oauth/authorizeを使用する必要があることだと思います。それ以外の場合、facbookが提供するjavascript/Apps apiを使用している場合は、/ dialog/oauthを使用します。アプリは通常、ログインダイアログからの応答がそれを開始したのと同じ人からのものであることを確認する必要があります。 FacebookのJavaScriptSDKを使用している場合は、これらのチェックが自動的に実行されるため、ブラウザーからのみ呼び出しを行っていると仮定すると、何も必要ありません。さらに、appsecret_proofを適用することで、グラフAPI呼び出しを安全にすることができます。

2
Abhinay