近年、サードパーティのログインをサポートするアプリケーションが増えているため、OAuth 認証プロトコルの人気が高まっています。 OAuth を実装すると、サードパーティ アプリケーションは、ユーザーのパスワードを知らなくても、他のアプリケーションからユーザー認証を取得できるようになります。 PHP はサーバー側プログラミング言語として広く使用されており、OAuth 認証もサポートしています。この記事では、PHP の OAuth ライブラリを使用して OAuth 認証を実装する方法を紹介します。
OAuth とは何ですか?
OAuth は認可標準プロトコルであり、アプリケーションがパスワードを明かさずにユーザー認可を得て別のアプリケーションの API またはデータにアクセスできるようにするオープンで安全なプロトコルです。これは主に、ユーザー名とパスワードをサードパーティ アプリケーションに提供せずに、サードパーティ アプリケーションが別のアプリケーションのユーザー データにアクセスできるようにするために使用されます。
OAuth 認証の基本プロセス:
OAuth 2.0 認可プロセスは、許可されたアクセスに基づくプロセスです。その基本的なプロセスは次のとおりです。
PHP の OAuth ライブラリを使用して OAuth 認証を実装する
まず、PHP OAuth 拡張ライブラリの基本概念と使用法を理解する必要があります。PHP OAuth 拡張ライブラリは、 OAuth プロトコルの直接実装。OAuth バージョン 1.0a および 2.0 仕様を使用します。 PHP OAuth 拡張ライブラリをサーバーにインストールする必要があります。PHP OAuth と OAuth 2.0 は同じものではないため、2 つの異なるバージョンのライブラリをインストールする必要があります。
OAuth ライブラリを使用して PHP に OAuth 認証を実装する手順は次のとおりです:
ステップ 1: PHP OAuth 拡張ライブラリをインストールする
最初に、次のことを確認する必要があります。サーバーに PHP OAuth 拡張ライブラリがインストールされているかどうか。すでにインストールされている場合は、この手順をスキップしてください。インストールされていない場合は、以下の手順に従ってインストールしてください:
コマンドを使用して直接インストールします (root 権限が必要):
sudo apt-get install php -oauth
手動でインストールする場合は、次の手順に従ってください:
次のコマンドを実行します:
phpize
Configure:
./configure
コンパイルとインストール:
make && sudo make install
#OAuth 認証を使用するには、アプリケーションを OAuth プロバイダーに登録し、資格情報を取得する必要があります。各 OAuth プロバイダーには独自のアプリケーション登録プロセスがあり、そのガイダンスに従って登録プロセスを完了する必要があります。正常に登録して資格情報を取得すると、次の情報を取得できます:
クライアント IDOAuth プロバイダーに接続してリクエストを行うには、承認するには、次の手順を実行してください。以下の手順に従ってください:
$oauth = new OAuth(
'your client id', //客户端ID 'your client secret', //客户端密钥 OAUTH_SIG_METHOD_HMACSHA1, //签名方法 OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型
);
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setRequestTokenUrl('https:// Provider.com/ oauth/request_token'); $oauth->setAccessTokenUrl('https://provider.com/oauth/access_token');
$oauth->setAuthUrl('https:// Provider.com/ oauth/authorize');
$oauth->getRequestToken('https://provider.com/oauth /request_token', 'callback url');
リクエスト トークンを取得した後、認証トークンを使用して、保護されたリソースにアクセスする必要があります。 OAuth プロバイダー。認可トークンを使用するには、それを OAuth プロバイダーに送信し、アクセス トークンを要求する必要があります。アクセス トークンを取得すると、保護された API を呼び出すリソースにアクセスできるようになります。
次のサンプル コードは、認可トークンを使用して保護された API にアクセスする方法を示しています。
$oauth = new OAuth(
'your client id', //客户端ID 'your client secret', //客户端密钥 OAUTH_SIG_METHOD_HMACSHA1, //签名方法 OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型
);
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setRequestTokenUrl('https://provider.com/oauth/request_token' ); $oauth->setAccessTokenUrl('https://provider.com/oauth/access_token');
$oauth->setAuthUrl('https://provider.com/oauth/authorize' );
$oauth->setToken('アクセス トークン', 'アクセス トークン シークレット');
$oauth->fetch('https://provider.com/api/resource');
OAuth 認証は、アプリケーションがパスワードを公開せずに他のアプリケーションからユーザー データを安全に要求できるようにする一般的な認証標準です。 PHP OAuth 拡張ライブラリは OAuth プロトコルの直接実装を提供するため、PHP で OAuth 認証を簡単に実装できます。 OAuth 認証を使用すると、ユーザーのデータが安全で悪用されにくいことを保証できます。
以上がPHPでOAuth認証を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。