ホームページ > バックエンド開発 > PHPチュートリアル > PHP と OAuth の統合により、サードパーティ API アクセス認証が実装されます

PHP と OAuth の統合により、サードパーティ API アクセス認証が実装されます

WBOY
リリース: 2023-06-25 12:22:02
オリジナル
1709 人が閲覧しました

インターネット技術の継続的な発展に伴い、多くの製品は機能拡張を実現するためにサードパーティ API インターフェイスを呼び出す必要があります。その中でも、OAuth は広く使用されている標準認証フレームワークであり、その目的は、ユーザーが自分のユーザー名とパスワードを第三者に公開することなく、サードパーティのアプリケーションがそのリソースにアクセスすることを承認できるように、異なるアプリケーション間に認証メカニズムを提供することです。この記事では、PHP を使用して OAuth フレームワークを統合し、サードパーティ API アクセス承認を実装する方法を紹介します。

1. OAuth の基本概念

OAuth はオープン標準の承認フレームワークであり、その目的は、ユーザーがサードパーティ アプリケーションを承認できるように、異なるアプリケーション間に承認メカニズムを提供することです。ユーザー名とパスワードを第三者に公開することなく、リソースを保護します。

OAuth フレームワークには、認可サーバー、リソース サーバー、クライアントという 3 つの役割があります。このうち、認可サーバーはユーザーの認証と認可を担当し、リソースサーバーはリソースの保存と提供を担当し、クライアントはリソースにアクセスする必要があるアプリケーションです。

OAuth 認証プロセスには通常、次の手順が含まれます。

  1. クライアント登録: クライアントは認証サーバーに登録し、クライアント ID とクライアント秘密キーを申請します。
  2. リクエスト認可: クライアントは認可サーバーにユーザー認可をリクエストし、認可サーバーはユーザーをログイン ページにリダイレクトし、ユーザー名とパスワードの入力を要求します。
  3. ユーザー認可: ユーザーがユーザー名とパスワードを入力すると、認可サーバーはユーザーの ID を検証し、クライアントのリソースへのアクセス要求を承認することをユーザーに要求します。
  4. 認可の取得: 認可サーバーはクライアントにアクセス トークンとリフレッシュ トークンを発行します。
  5. リソースへのアクセス: クライアントは、アクセス トークンを使用してリソース サーバーにアクセスし、ユーザー データを取得します。
  6. リフレッシュ トークン: アクセス トークンの有効期限が切れると、クライアントはリフレッシュ トークンを使用して認可サーバーに新しいアクセス トークンを要求します。

2. PHP と OAuth の統合

PHP は、OAuth 認証を簡単に実装できる多くのクラス ライブラリとフレームワークを提供します。以下では、oauth2-client を例として、PHP を使用して OAuth フレームワークを統合し、サードパーティ API アクセス承認を実装する方法を紹介します。

  1. oauth2-client のインストール

oauth2-client は、PHP で実装された OAuth2.0 クライアントで、OAuth2.0 認証サーバーからのアクセス トークンを要求するために使用できます。 。 oauth2-client のインストールは、composer を通じて実行できます。ターミナルで次のコマンドを実行して、oauth2-client をインストールします。

$ composer require league/oauth2-client
ログイン後にコピー
  1. クライアントの作成

oauth2-client を使用する前に、クライアント オブジェクトを作成する必要があります。クライアント オブジェクトには次の構成情報が含まれています。

<?php
$provider = new LeagueOAuth2ClientProviderGenericProvider([
    'clientId'                => '...',
    'clientSecret'            => '...',
    'redirectUri'             => '...',
    'urlAuthorize'            => '...',
    'urlAccessToken'          => '...',
    'urlResourceOwnerDetails' => '...'
]);
?>
ログイン後にコピー

ここでは、clientId、clientSecret、redirectUri が必須であり、他の URL リンクは実際の状況に応じて入力する必要があります。

  1. 認証コードのリクエスト

次に、認証コードをリクエストする必要があります。 OAuth2.0 認可プロセスでは、クライアントは最初に認可コードを取得し、次にその認可コードを使用して認可サーバーにアクセス トークンを要求する必要があります。

<?php
$authUrl = $provider->getAuthorizationUrl();
header('Location: '.$authUrl);
ログイン後にコピー

上記のコードでは、getAuthorizationUrl メソッドを通じて認可コード要求リンクを取得し、ヘッダー関数を使用してユーザーを認可リンクにリダイレクトし、ユーザーの認可を待ちます。

  1. アクセス トークンの取得

認可が成功すると、認可サーバーは認可コードを redirectUri 構成項目で指定されたアドレスにリダイレクトし、認可コードをフォームで渡される GET パラメータ。認可コードを介して認可サーバーにアクセス トークンをリクエストできます。

<?php
$code = $_GET['code'];
$token = $provider->getAccessToken('authorization_code', [
    'code' => $code
]);
echo $token->getToken();
?>
ログイン後にコピー

上記のコードでは、getAccessToken メソッドを使用してアクセス トークンをリクエストし、認可コードをパラメーターとして渡します。アクセス トークンの取得に成功したら、getToken メソッドを通じてアクセス トークンの値を取得できます。

  1. アクセス トークンの更新

アクセス トークンの有効期限が切れた場合は、トークンを更新して新しいアクセス トークンを取得する必要があります。 oauth2-client では、refreshToken メソッドを使用してトークンを更新できます。

<?php
$refreshToken = $token->getRefreshToken();
$newToken = $provider->getAccessToken('refresh_token', [
    'refresh_token' => $refreshToken
]);
echo $newToken->getToken();
?>
ログイン後にコピー

上記のコードでは、getToken メソッドを通じて古いアクセス トークンを取得し、refreshToken メソッドを通じてそれを更新して新しいアクセス トークンを取得します。リフレッシュ トークンは、アクセス トークンが取得された場合にのみ返されることに注意することが重要です。

3. 概要

この記事では、PHP を使用して OAuth フレームワークを統合し、サードパーティ API アクセス承認を実現する方法を紹介します。このソリューションにより、ユーザーのユーザー名とパスワードを第三者に明かすことなく、第三者が提供する API に簡単にアクセスできます。自社の製品にサードパーティの API アクセス認証を実装する必要がある場合は、この記事で説明した内容を参照してください。

以上がPHP と OAuth の統合により、サードパーティ API アクセス認証が実装されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート