ホームページ  >  記事  >  バックエンド開発  >  php7 に oauth2 拡張機能をインストールする方法について説明した記事

php7 に oauth2 拡張機能をインストールする方法について説明した記事

PHPz
PHPzオリジナル
2023-03-21 10:50:421881ブラウズ

PHP7 は、Web 開発の分野で常に人気のある効率的なプログラミング言語です。 OAuth2 プロトコルは、Web アプリケーションのセキュリティとユーザーのプライバシーを保護するために使用される認証と認可のオープン標準です。次に、Web 開発でこのプロトコルを使用できるように、PHP7 に OAuth2 拡張機能をインストールする方法を見てみましょう。

  1. OAuth2 拡張機能のインストール

PHP7 に OAuth2 拡張機能をインストールするには、pecl コマンドを使用する必要があります。ターミナルで次のコマンドを実行します:

pecl install oauth-2.0.4

pecl がシステムにインストールされていない場合は、次のコマンドを使用してインストールできます:

sudo apt-get install php-pear
  1. PHP を構成します。 ini ファイル

インストール後、PHP.ini ファイルに OAuth2 拡張機能を追加する必要があります。ターミナルで次のコマンドを実行して、php.ini ファイルのパスを見つけます。

php --ini

見つかった php.ini ファイルを開き、最後に次のコードを追加します。

extension=oauth.so

ファイルを保存して、 PHP-FPM サービスを再起動します:

sudo systemctl restart php7-fpm

これで、OAuth2 拡張機能が正常にインストールされ、構成されました。次に、OAuth2 認証プロトコルを使用して Web アプリケーションを保護する方法を学びましょう。

  1. OAuth2 プロトコルの使用

OAuth2 は、さまざまな認可および認証プロセスを含む複雑なプロトコルです。ここでは、OAuth2 拡張機能の使用方法を示すプロセスの 1 つだけを紹介します。

まず、アプリケーションを登録し、クライアント ID とクライアント シークレットを取得する必要があります。次に、PHP コードを使用して、OAuth2 拡張機能によって提供される承認プロセスを呼び出すことができます。

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$authorizationUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();

header('Location: ' . $authorizationUrl);

上記の例では、承認 URL が生成され、ユーザーがその URL にリダイレクトされます。その URL で、ユーザーはログインし、アプリケーションが特定のユーザー データにアクセスすることを許可する必要があります。ユーザーがアプリケーションを承認すると、次のコードを使用してアクセス トークンと交換できる承認コードを受け取ります。

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

if (!isset($_GET['code'])) {

    $options = [
        'state' => 'OPTIONAL_CUSTOM_CONFIG_VALUE',
        'scope' => ['scope1', 'scope2'],
    ];

    $authorizationUrl = $provider->getAuthorizationUrl($options);
    $_SESSION['oauth2state'] = $provider->getState();

    header('Location: ' . $authorizationUrl);
    exit;

} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {

    unset($_SESSION['oauth2state']);
    exit('Invalid state');

} else {

    $token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    echo $token->getToken();
}

上記のコードは、ユーザー データへのアクセスに使用できるアクセス トークンを返します。ユーザー データにアクセスするには、OAuth2 拡張機能によって提供される API にアクセス トークンを渡すだけです。

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$accessToken = 'YOUR_ACCESS_TOKEN';

$response = $provider->getAuthenticatedRequest(
    'GET',
    'http://example.com/api/data',
    $accessToken
);

$data = json_decode((string) $provider->getResponse($response)->getBody(), true);

print_r($data);

上記の例では、アクセス トークンを取得し、API を呼び出してユーザー データにアクセスします。

  1. 概要

この記事では、PHP7 に OAuth2 拡張機能をインストールし、OAuth2 認証プロトコル Safety を使用して Web アプリケーションを保護する方法を学びました。 OAuth2 プロトコルは、Web 開発中にユーザーのプライバシーとデータ セキュリティを保護するのに役立つ重要なセキュリティ プロトコルです。次の Web 開発プロジェクトでは、ユーザー データを安全に保つために OAuth2 プロトコルを使用することを忘れないでください。

以上がphp7 に oauth2 拡張機能をインストールする方法について説明した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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