PHP を使用して OAuth2 に基づいたサードパーティの承認と認証を実装する

WBOY
リリース: 2023-08-08 10:54:01
オリジナル
1133 人が閲覧しました

PHP を使用して OAuth2 に基づいたサードパーティの承認と認証を実装する

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 オブジェクトを作成し、関連する構成情報を渡す必要があります。このうち、clientIdclientSecret は、認可サーバーによって提供されるアプリケーション 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 サイトの他の関連記事を参照してください。

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