ホームページ  >  記事  >  バックエンド開発  >  PHP と OAuth を使用して Github ログイン統合を行う方法

PHP と OAuth を使用して Github ログイン統合を行う方法

王林
王林オリジナル
2023-07-28 15:06:16910ブラウズ

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 サイトの他の関連記事を参照してください。

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