ホームページ >バックエンド開発 >PHPチュートリアル >PHP でのデータ アクセスに OAuth を使用する方法
PHP でデータ アクセスに OAuth を使用する方法
OAuth は、ユーザー名とパスワードを必要とせずにサードパーティのアプリケーションにデータへのアクセス許可を与えることを可能にする承認のオープン標準です。アプリケーション。 PHP でのデータ アクセスに OAuth を使用すると非常に便利です。この記事では、データ アクセスに OAuth を使用する方法と関連するコード例を紹介します。
まず、OAuth ライブラリをインストールする必要があります。 PHP では、composer を使用してインストールできます。ターミナルで次のコマンドを実行します。
composer require league/oauth2-client
データ アクセスに OAuth を使用する前に、対応する OAuth 認証を取得する必要があります。通常、ユーザー認証を要求し、アクセス トークンを取得する必要があります。以下は、ユーザー認証に OAuth を使用する例です。
<?php require_once 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; use LeagueOAuth2ClientProviderExceptionIdentityProviderException; $provider = new GenericProvider([ 'clientId' => 'yourClientId', 'clientSecret' => 'yourClientSecret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://example.com/oauth/authorize', 'urlAccessToken' => 'https://example.com/oauth/token', 'urlResourceOwnerDetails' => 'https://example.com/oauth/resource' ]); $authUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authUrl);
上記の例では、OAuth 認証に、league/oauth2-client ライブラリによって提供される GenericProvider クラスを使用します。サンプル コード内の clientId、clientSecret、redirectUri、urlAuthorize、urlAccessToken およびその他のパラメーターを独自の値に置き換える必要があることに注意してください。
ユーザーが認可を完了すると、認可サーバーは、アクセス トークンなどの情報とともに、提供されたコールバック URL にユーザーをリダイレクトします。認可サーバーから返されたアクセス トークンを格納するコールバック URL のハンドラーを作成する必要があります。以下はコールバック処理の例です:
<?php require_once 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; use LeagueOAuth2ClientProviderExceptionIdentityProviderException; $provider = new GenericProvider([ 'clientId' => 'yourClientId', 'clientSecret' => 'yourClientSecret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://example.com/oauth/authorize', 'urlAccessToken' => 'https://example.com/oauth/token', 'urlResourceOwnerDetails' => 'https://example.com/oauth/resource' ]); if (!isset($_GET['code'])) { exit('Error: No authorization code found'); } try { $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); echo 'Access Token: ' . $accessToken->getToken(); } catch (IdentityProviderException $e) { exit('Error: ' . $e->getMessage()); }
上の例では、$_GET['code'] パラメータを取得し、認可サーバーから返された認可コードを getAccessToken メソッドに渡すことによってアクセスを取得します。 OAuth ライブラリのトークン。
アクセス トークンを取得したら、それをデータ アクセスに使用できます。データ アクセスにアクセス トークンを使用する例を次に示します。
<?php require_once 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; use LeagueOAuth2ClientProviderExceptionIdentityProviderException; $provider = new GenericProvider([ 'clientId' => 'yourClientId', 'clientSecret' => 'yourClientSecret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://example.com/oauth/authorize', 'urlAccessToken' => 'https://example.com/oauth/token', 'urlResourceOwnerDetails' => 'https://example.com/oauth/resource' ]); $accessToken = new LeagueOAuth2ClientTokenAccessToken([ 'access_token' => 'yourAccessToken' ]); $response = $provider->getAuthenticatedRequest( 'GET', 'https://example.com/api/data', $accessToken ); $data = $provider->getParsedResponse($response); var_dump($data);
上の例では、AccessToken オブジェクトを作成し、アクセス トークンを getAuthenticatedRequest メソッドに渡すことによって、承認されたリクエストを作成します。次に、getParsedResponse メソッドを呼び出して応答の内容を取得します。サンプル コードの yourAccessToken を独自のアクセス トークンに置き換える必要があることに注意してください。
概要:
この記事では、PHP でのデータ アクセスに OAuth を使用する方法を紹介します。まず、OAuth ライブラリをインストールする必要があります。次に、OAuth 認証を取得してコールバックを処理する必要があります。最後に、データ アクセスにアクセス トークンを使用します。上記のコード例を使用すると、OAuth 認証とデータ アクセスの機能を PHP アプリケーションに簡単に実装できます。
以上がPHP でのデータ アクセスに OAuth を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。