ホームページ  >  記事  >  バックエンド開発  >  PHP プログラミングで OAuth を使用するにはどうすればよいですか?

PHP プログラミングで OAuth を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-12 08:04:361623ブラウズ

OAuth は、サードパーティのアプリケーションがデータや写真などの保護されたリソースにアクセスすることをユーザーが承認するためのオープン スタンダードです。 PHP プログラミングでは、OAuth を使用すると、サードパーティのサービスとのやり取りを簡単に処理できます。この記事では、認可、認証、サードパーティ サービスへのアクセスのために PHP で OAuth を使用する方法を紹介します。

OAuth の仕組み

OAuth を使用する前に、OAuth の仕組みを理解する必要があります。 OAuth プロセスは、トークンの要求、ユーザー認可、トークンを使用したリソースへのアクセスの 3 つのステップに分けることができます。ここで、トークンは、保護されたリソースへのアクセスを承認するために使用される資格情報です。トークンをリクエストするときは、身元を確認するためにクライアント ID とクライアント シークレットを指定する必要があります。承認後、ユーザーはアクセス トークンを取得し、これを使用して保護されたリソースにアクセスできます。リソースにアクセスするときに、HTTP リクエスト ヘッダーにこのトークンを含める必要があります。

OAuth のワークフローは次のとおりです。

  1. クライアントは認可サーバーにトークンを要求します。
  2. 認可サーバーはクライアントの身元を確認し、認証が成功した場合はクライアントに認可コードを返します。
  3. クライアントは、アクセス トークンを取得するために認可コードをトークン サーバーに送信します。
  4. トークン サーバーは認証コードの有効性を検証し、アクセス トークンをクライアントに送信します。
  5. クライアントは、各 HTTP リクエストを送信するときに、リクエスト ヘッダーにアクセス トークンを含める必要があります。

PHP で OAuth を使用する方法

PHP で OAuth を使用するには、OAuth ライブラリを使用する必要があります。現在、php-oauth、oauth2-server-php、league/oauth2-client など、多くの OAuth ライブラリから選択できます。 php-oauthを使用してOAuthを使用する方法は次のとおりです。

  1. php-oauth のインストール

php-oauth を使用する前に、まずライブラリをインストールする必要があります。次のコマンドを使用して php-oauth をインストールできます。

composer require php-oauth/oauth1:^1.0
  1. OAuth クライアントの作成

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'
]);
  1. リクエストトークン

トークンをリクエストする場合は、認可サーバーにリクエストを送信する必要があります。 php-oauth ライブラリでは、getTemporaryCredentials メソッドを使用してトークンをリクエストできます。

$temporaryCredentials = $client->getTemporaryCredentials();

このメソッドは一時的な資格情報を返します。この資格情報は、認可サービスを使用してさらなるリクエストを行い、認可を完了するために使用されます。

  1. ユーザー認可

ユーザー認可の前に、認可リクエストを認可サーバーに送信する必要があります。 php-oauth ライブラリでは、getAuthorizationUrl メソッドを使用して認可 URL を取得できます。

$authorizationUrl = $client->getAuthorizationUrl($temporaryCredentials);

ユーザーに URL を提供して認可を取得します。認可が完了すると、指定したコールバック URL にリダイレクトされます。コールバック URL には認証コードが伴います。

  1. 認可コードを使用してアクセス トークンを取得します

認可コードを取得した後、認可コードを使用してアクセス トークンを取得する必要があります。 php-oauth ライブラリでは、getTokenCredentials メソッドを使用できます。

$tokenCredentials = $client->getTokenCredentials($temporaryCredentials, $_GET['oauth_token'], $_GET['oauth_verifier']);

このメソッドは、後続のリクエストに使用できるアクセス トークンを返します。

  1. アクセス トークンを使用したリソースへのアクセス

保護されたリソースにアクセスするときは、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。