OAuth は、サードパーティのアプリケーションがデータや写真などの保護されたリソースにアクセスすることをユーザーが承認するためのオープン スタンダードです。 PHP プログラミングでは、OAuth を使用すると、サードパーティのサービスとのやり取りを簡単に処理できます。この記事では、認可、認証、サードパーティ サービスへのアクセスのために PHP で OAuth を使用する方法を紹介します。
OAuth の仕組み
OAuth を使用する前に、OAuth の仕組みを理解する必要があります。 OAuth プロセスは、トークンの要求、ユーザー認可、トークンを使用したリソースへのアクセスの 3 つのステップに分けることができます。ここで、トークンは、保護されたリソースへのアクセスを承認するために使用される資格情報です。トークンをリクエストするときは、身元を確認するためにクライアント ID とクライアント シークレットを指定する必要があります。承認後、ユーザーはアクセス トークンを取得し、これを使用して保護されたリソースにアクセスできます。リソースにアクセスするときに、HTTP リクエスト ヘッダーにこのトークンを含める必要があります。
OAuth のワークフローは次のとおりです。
PHP で OAuth を使用する方法
PHP で OAuth を使用するには、OAuth ライブラリを使用する必要があります。現在、php-oauth、oauth2-server-php、league/oauth2-client など、多くの OAuth ライブラリから選択できます。 php-oauthを使用してOAuthを使用する方法は次のとおりです。
php-oauth を使用する前に、まずライブラリをインストールする必要があります。次のコマンドを使用して php-oauth をインストールできます。
composer require php-oauth/oauth1:^1.0
OAuth クライアントを作成するには、クライアント ID、クライアント キーと API エンドポイント。 API エンドポイントでは、リクエスト トークン URL を指定し、アクセス トークン URL を取得する必要があります。
use OAuthOAuth1ClientServerTwitter; $client = new Twitter([ 'identifier' => 'client_id', 'secret' => 'client_secret', 'callback_uri' => 'http://your-callback-url.com', 'token_url' => 'https://api.twitter.com/oauth/request_token', 'auth_url' => 'https://api.twitter.com/oauth/authorize', 'api_url' => 'https://api.twitter.com' ]);
トークンをリクエストする場合は、認可サーバーにリクエストを送信する必要があります。 php-oauth ライブラリでは、getTemporaryCredentials
メソッドを使用してトークンをリクエストできます。
$temporaryCredentials = $client->getTemporaryCredentials();
このメソッドは一時的な資格情報を返します。この資格情報は、認可サービスを使用してさらなるリクエストを行い、認可を完了するために使用されます。
ユーザー認可の前に、認可リクエストを認可サーバーに送信する必要があります。 php-oauth ライブラリでは、getAuthorizationUrl
メソッドを使用して認可 URL を取得できます。
$authorizationUrl = $client->getAuthorizationUrl($temporaryCredentials);
ユーザーに URL を提供して認可を取得します。認可が完了すると、指定したコールバック URL にリダイレクトされます。コールバック URL には認証コードが伴います。
認可コードを取得した後、認可コードを使用してアクセス トークンを取得する必要があります。 php-oauth ライブラリでは、getTokenCredentials
メソッドを使用できます。
$tokenCredentials = $client->getTokenCredentials($temporaryCredentials, $_GET['oauth_token'], $_GET['oauth_verifier']);
このメソッドは、後続のリクエストに使用できるアクセス トークンを返します。
保護されたリソースにアクセスするときは、HTTP リクエストのヘッダーにアクセス トークンを含める必要があります。 php-oauth ライブラリでは、get
メソッドを使用してリクエストを送信し、アクセス トークンを含めることができます。
$response = $client->get('https://api.twitter.com/1.1/account/verify_credentials.json', $tokenCredentials);
応答を取得した後、API から返されたデータを処理できます。
概要
OAuth を使用すると、ユーザーを簡単に認証し、保護されたリソースにアクセスできます。 PHP プログラミングでは、php-oauth、oauth2-server-php、league/oauth2-client など、選択できる OAuth ライブラリが多数あります。 OAuth を使用する場合は、OAuth の仕組みを理解し、OAuth ライブラリを使用するプロセスに従う必要があります。
以上がPHP プログラミングで OAuth を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。