Github ログイン統合に PHP と OAuth を使用する方法
現在のインターネット時代では、ユーザー ログインはほぼすべての Web サイトやアプリケーションに必要な機能の 1 つになっています。ただし、ユーザーの利便性を考慮して、多くの Web サイトはサードパーティのログイン プロバイダーを統合することでログイン プロセスを簡素化することを選択しています。この記事では、PHP と OAuth を使用して Github ログイン統合を実装する方法を説明します。
OAuth (オープン認証) は、ユーザー名とパスワードを提供せずにサードパーティのアプリケーションがリソースにアクセスすることを認証できるオープン スタンダードです。世界をリードするオープン ソース コード管理プラットフォームとして、Github はユーザーがログインするための OAuth2.0 認証メカニズムを提供します。
まず、Github で OAuth アプリケーションを申請する必要があります。 Github アカウントにログインし、[設定] -> [開発者設定] -> [OAuth アプリ] に移動し、[新しい OAuth アプリ] をクリックして新しい OAuth アプリケーションを作成します。名前、説明、ホームページ URL、コールバック URL などのアプリケーションの基本情報を入力します。コールバック URL に、ユーザーがログインを完了した後に戻る URL を入力します。完了すると、Github はアプリケーションに「クライアント ID」と「クライアント シークレット」の認証資格情報を提供します。
次に、PHP で Github ログイン統合を実装する必要があります。まず、「github_login.php」というファイルを作成し、OAuth ライブラリをインポートします。
<?php require_once 'oauth/OAuth.php';
次に、Github アプリケーションの認証資格情報とコールバック URL を定義します。
$clientId = 'YOUR_CLIENT_ID'; $clientSecret = 'YOUR_CLIENT_SECRET'; $redirectUri = 'YOUR_REDIRECT_URL';
Github In にログインします。統合するには、2 つのステップを実装する必要があります。まず、ユーザーがクリックして認証のために Github にジャンプできるように、ログイン リンクを生成する必要があります。
$baseUrl = 'https://github.com/login/oauth/authorize'; $params = array( 'client_id' => $clientId, 'redirect_uri' => $redirectUri, 'scope' => 'user' ); $loginUrl = $baseUrl . '?' . http_build_query($params); echo '<a href="' . $loginUrl . '">使用Github账号登录</a>';
ユーザーがログイン リンクをクリックすると、Github は認証付きで指定されたコールバック URL にユーザーをジャンプします。コード。コールバック URL では、次のコードを通じて認可コードを取得できます:
$code = $_GET['code'];
次に、認可コードを使用して Github からアクセス トークンを取得する必要があります:
$baseUrl = 'https://github.com/login/oauth/access_token'; $params = array( 'client_id' => $clientId, 'client_secret' => $clientSecret, 'code' => $code, 'redirect_uri' => $redirectUri ); $tokenUrl = $baseUrl . '?' . http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tokenUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $accessToken = json_decode($response, true)['access_token'];
最後に、取得したAccess tokenを利用して、Githubからユーザー情報を取得します。
$baseUrl = 'https://api.github.com/user'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $baseUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: token ' . $accessToken)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $userData = json_decode($response, true); // 输出用户信息 echo 'Github用户名:' . $userData['login']; echo 'Github用户ID:' . $userData['id'];
以上の手順で、PHPとOAuthを利用したGithubログイン統合の処理を実装しました。実際のアプリケーションでは、取得したユーザー情報をデータベースに保存し、ユーザー登録やログインの論理的な処理を完了できます。
要約すると、PHP と OAuth を使用した Github ログインの統合は複雑ではありません。 Github が提供する OAuth2.0 認証メカニズムを通じて、ユーザーに高速かつ安全なログイン エクスペリエンスを提供できます。この記事が Github ログイン統合の理解と実装に役立つことを願っています。
以上がPHP と OAuth を使用して Github ログイン統合を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。