4

スコープの仕組みを理解するのに苦労しています。

ここで、 stackexchange apiのスコープを説明する小さなテキストを見つけましたが、それらがどのように機能するかについての詳細情報が必要です (具体的にはこれではありません...)。誰かが私にコンセプトを提供できますか?

前もって感謝します

4

1 に答える 1

3

アプリを承認するには、OAuth2 承認プロセスの URL を呼び出す必要があります。この URL は、API のプロバイダー ドキュメントに「存在」しています。たとえば、Google には次の URL があります。

https://accounts.google.com/o/auth2/auth

また、次のリンクでいくつかのクエリ パラメータを指定する必要があります。

  • cliend_id
  • redirect_uri
  • scope: アプリケーションがアクセスを要求しているデータ。これは通常、スペースで区切られた文字列のリストとして指定されますが、Facebook ではカンマ区切りの文字列が使用されます。の有効な値はscope、API プロバイダーのドキュメントに含まれている必要があります。Gougle タスクの場合、scopeは ですhttps://www.googleapis.com/auth/tasks。アプリケーションが Google ドキュメントへのアクセスも必要な場合は、次のscope値を指定します。https://www.googleapis.com/auth/tasks https://docs.google.com/feeds
  • response_type:codeサーバー側 Web アプリケーション フローcodeの場合、ユーザーが承認要求を承認した後に承認がアプリケーションに返されることを示します。
  • state: 実装に対するクロスサイト リクエスト フォージェリ (CSRF) 攻撃を防ぐためにアプリケーションで使用される一意の値。値は、この特定のリクエストのランダムな一意の文字列であり、推測不可能であり、クライアントで秘密にされている必要があります (おそらくサーバー側のセッションで)

// Generate random value for use as the 'state'.  Mitigates
// risk of CSRF attacks when this value is verified against the
// value returned from the OAuth provider with the authorization
// code.
$_SESSION['state'] = rand(0,999999999);

$authorizationUrlBase = 'https://accounts.google.com/o/oauth2/auth';
$redirectUriPath = '/oauth2callback.php';

// For example only.  A valid value for client_id needs to be obtained 
// for your environment from the Google APIs Console at 
// http://code.google.com/apis/console.
$queryParams = array(
  'client_id' => '240195362.apps.googleusercontent.com',
  'redirect_uri' => (isset($_SERVER['HTTPS'])?'https://':'http://') .
                   $_SERVER['HTTP_HOST'] . $redirectUriPath,
  'scope' => 'https://www.googleapis.com/auth/tasks',
  'response_type' => 'code',
  'state' => $_SESSION['state'],
  'approval_prompt' => 'force', // always request user consent
  'access_type' => 'offline' // obtain a refresh token
);

$goToUrl = $authorizationUrlBase . '?' . http_build_query($queryParams);

// Output a webpage directing users to the $goToUrl after 
// they click a "Let's Go" button
include 'access_request_template.php';

ウェブ サーバー アプリケーション用の Google 認証サーバーでサポートされている一連のクエリ文字列パラメーターは次のとおりです。

https://developers.google.com/accounts/docs/OAuth2WebServer?hl=el#formingtheurl

于 2013-04-16T18:25:40.093 に答える