インターネットの継続的な発展と普及に伴い、ユーザーの迅速な登録とログイン、およびユーザー データの取得をより便利にするために、サードパーティのログインおよび認証サービスを提供する Web サイトやアプリケーションがますます増えています。 OAuth2 は、一般的なオープン認証標準として、サードパーティのログインおよび認証シナリオで広く使用されています。
この記事では、PHP と OAuth2 を使用してサードパーティのログインと承認を実装する方法を紹介します。 GitHub をサンプル プラットフォームとして使用し、OAuth2 を使用してユーザー情報を取得し、その情報をローカル データベースに保存する方法を示します。
GitHub で OAuth アプリケーションを作成し、生成されたクライアント ID とクライアント シークレットを後で使用できるように記録します。
サードパーティの OAuth2 クライアント ライブラリを使用して、PHP に OAuth2 を実装できます。ここではサンプル ライブラリとして phpleague/oauth2-client を使用します。
Composer を使用してインストールします。Composer をまだインストールしていない場合は、最初にインストールしてください。
ターミナルで次のコマンドを実行します:
composer require league/oauth2-client
承認リンクを構築することが最初のステップです。承認リンクを使用すると、ユーザーは次のことができます。 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);
このコードは次のことを行います:
ユーザーが 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();
アクセス トークンを取得したので、ユーザーデータを取得するためのアクセストークン。ユーザー情報の取得を例に挙げます。
$user = $provider->getResourceOwner($accessToken); echo '用户ID:' . $user->getId() . '<br>'; echo '用户名:' . $user->getNickname() . '<br>'; echo '头像URL:' . $user->getAvatarUrl() . '<br>'; echo '主页URL:' . $user->getProfileUrl() . '<br>';
ユーザー データを取得した後、将来の使用に備えてそのデータをローカル データベースに保存できます。
この記事では、PHP と OAuth2 を使用してサードパーティのログインと承認を実装する方法を紹介しました。簡単な例を通して、OAuth2 クライアント ライブラリを使用して認証リンクを構築し、アクセス トークンを取得し、ユーザー データを取得する方法を学びました。この記事がお役に立てば幸いです。
以上がPHP と OAuth2 を使用してサードパーティのログインと承認を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。