PHP を使用して OAuth2 に基づくサードパーティの承認と認証を実装する
OAuth2 は、サードパーティのアプリケーションがユーザー リソースにアクセスすることを承認するために使用されるオープン標準プロトコルです。シンプル、安全、柔軟であり、さまざまな Web アプリケーションやモバイル アプリケーションで広く使用されています。
PHP では、サードパーティのライブラリを使用して OAuth2 認可と認証を実装できます。この記事では、サンプル コードを組み合わせて、PHP を使用して OAuth2 に基づくサードパーティの承認と認証を実装する方法を紹介します。
まず、Composer を使用して OAuth2 PHP ライブラリをインストールする必要があります。コマンド ラインで次のコマンドを実行します。
composer require league/oauth2-client
インストールが完了したら、次のコード スニペットを使用して OAuth2 認証プロセスを実装できます。
<?php require 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; $provider = new GenericProvider([ 'clientId' => 'your_client_id', 'clientSecret' => 'your_client_secret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://authorization-server.com/auth', 'urlAccessToken' => 'https://authorization-server.com/token', 'urlResourceOwnerDetails' => 'https://api.server.com/userinfo' ]); // 获取授权地址 $authorizationUrl = $provider->getAuthorizationUrl(); // 将授权地址重定向到用户 header('Location: ' . $authorizationUrl);
上記のコードでは、まず GenericProvider
オブジェクトを作成し、関連する構成情報を渡す必要があります。このうち、clientId
と clientSecret
は、認可サーバーによって提供されるアプリケーション ID と秘密キーであり、redirectUri
は、ユーザーが認可を完了した後のリダイレクト アドレスです。 # urlAuthorize は認可サーバーの認可アドレス、
urlAccessToken は認可サーバーのトークン取得アドレス、
urlResourceOwnerDetails はユーザー情報を取得するためのインターフェースのアドレスです。
getAuthorizationUrl メソッドを使用して承認アドレスを取得し、それをユーザーにリダイレクトします。ユーザーはログインし、認証アドレスを介して認証を行い、その後、当社が提供する
redirectUri アドレスにリダイレクトされます。
callback.php を作成する必要もあります。以下は、
callback.php のコード例です。
<?php require 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; $provider = new GenericProvider([ 'clientId' => 'your_client_id', 'clientSecret' => 'your_client_secret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://authorization-server.com/auth', 'urlAccessToken' => 'https://authorization-server.com/token', 'urlResourceOwnerDetails' => 'https://api.server.com/userinfo' ]); // 获取令牌 $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); // 使用令牌获取用户信息 $user = $provider->getResourceOwner($token); // 输出用户信息 echo 'User ID: ' . $user->getId() . '<br>'; echo 'User Name: ' . $user->getName() . '<br>';
callback.php では、ユーザーの承認を取得し、
getAccessToken# を通じて返します。 ## メソッド トークンを取得し、このトークンを使用して getResourceOwner
メソッドを通じてユーザーの情報を取得します。 上記は、PHP を使用して OAuth2 に基づくサードパーティの承認と認証を実装するためのサンプル コードです。これらのコードを通じて、ユーザー認証ログインを実装し、認証されたユーザー情報を取得できます。
これは OAuth2 の単純な例にすぎないことに注意してください。実際のアプリケーションでは、エラーや例外の処理に加え、さらに多くの認可プロセスが必要になります。開発者は、特定のニーズに基づいて適切な変更や拡張を行う必要があります。
参考:
リーグ OAuth2 クライアント: https://github.com/thephpleague/oauth2-client以上がPHP を使用して OAuth2 に基づいたサードパーティの承認と認証を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。