ホームページ > バックエンド開発 > PHPチュートリアル > PHP と OAuth2 を使用してサードパーティのログインと承認を実装する

PHP と OAuth2 を使用してサードパーティのログインと承認を実装する

PHPz
リリース: 2023-06-25 18:34:02
オリジナル
1044 人が閲覧しました

インターネットの継続的な発展と普及に伴い、ユーザーの迅速な登録とログイン、およびユーザー データの取得をより便利にするために、サードパーティのログインおよび認証サービスを提供する Web サイトやアプリケーションがますます増えています。 OAuth2 は、一般的なオープン認証標準として、サードパーティのログインおよび認証シナリオで広く使用されています。

この記事では、PHP と OAuth2 を使用してサードパーティのログインと承認を実装する方法を紹介します。 GitHub をサンプル プラットフォームとして使用し、OAuth2 を使用してユーザー情報を取得し、その情報をローカル データベースに保存する方法を示します。

1. まず、GitHub で OAuth アプリケーションを作成する必要があります

GitHub で OAuth アプリケーションを作成し、生成されたクライアント ID とクライアント シークレットを後で使用できるように記録します。

2. OAuth2 クライアント ライブラリをインストールする

サードパーティの OAuth2 クライアント ライブラリを使用して、PHP に OAuth2 を実装できます。ここではサンプル ライブラリとして phpleague/oauth2-client を使用します。

Composer を使用してインストールします。Composer をまだインストールしていない場合は、最初にインストールしてください。

ターミナルで次のコマンドを実行します:

composer require league/oauth2-client
ログイン後にコピー

3. 承認リンクを構築します

承認リンクを構築することが最初のステップです。承認リンクを使用すると、ユーザーは次のことができます。 GitHub にリダイレクトされ、承認をリクエストします。

以下は、認可リンクを構築するためのサンプル コードです:

<?php

require_once __DIR__ . '/vendor/autoload.php';

$provider = new LeagueOAuth2ClientProviderGithub([
    'clientId'          => 'YOUR_CLIENT_ID',
    'clientSecret'      => 'YOUR_CLIENT_SECRET',
    'redirectUri'       => 'http://localhost:8000/callback.php',
]);

$authUrl = $provider->getAuthorizationUrl([
    'scope' => ['user'],
]);

header('Location: ' . $authUrl);
ログイン後にコピー

このコードは次のことを行います:

  1. GitHub プロバイダー インスタンスを作成し、必要な OAuth アプリケーション情報
  2. getAuthorizationUrl メソッドを使用して認証リンクを取得し、ユーザーをこのリンクにリダイレクトします

4. コールバック URL を処理し、アクセス トークンを取得します

ユーザーが GitHub でアプリを承認すると、アプリにリダイレクトされます。このリダイレクト URL でアクセス トークンを取得できます。

アクセス トークンを取得するサンプル コードは次のとおりです:

<?php

require_once __DIR__ . '/vendor/autoload.php';

$provider = new LeagueOAuth2ClientProviderGithub([
    'clientId'          => 'YOUR_CLIENT_ID',
    'clientSecret'      => 'YOUR_CLIENT_SECRET',
    'redirectUri'       => 'http://localhost:8000/callback.php',
]);

if (!isset($_GET['code'])) {
    die('授权失败:没有授权码!');
} else {
    $accessToken = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code'],
    ]);
}

echo '访问令牌:' . $accessToken->getToken();
ログイン後にコピー

5. ユーザー データを取得して保存します

アクセス トークンを取得したので、ユーザーデータを取得するためのアクセストークン。ユーザー情報の取得を例に挙げます。

$user = $provider->getResourceOwner($accessToken);

echo '用户ID:' . $user->getId() . '<br>';
echo '用户名:' . $user->getNickname() . '<br>';
echo '头像URL:' . $user->getAvatarUrl() . '<br>';
echo '主页URL:' . $user->getProfileUrl() . '<br>';
ログイン後にコピー

ユーザー データを取得した後、将来の使用に備えてそのデータをローカル データベースに保存できます。

6. 概要

この記事では、PHP と OAuth2 を使用してサードパーティのログインと承認を実装する方法を紹介しました。簡単な例を通して、OAuth2 クライアント ライブラリを使用して認証リンクを構築し、アクセス トークンを取得し、ユーザー データを取得する方法を学びました。この記事がお役に立てば幸いです。

以上がPHP と OAuth2 を使用してサードパーティのログインと承認を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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