Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie die Github-Login-Integration mit PHP und OAuth durch

So führen Sie die Github-Login-Integration mit PHP und OAuth durch

王林
王林Original
2023-07-28 15:06:16866Durchsuche

So verwenden Sie PHP und OAuth für die Github-Login-Integration

Im aktuellen Internetzeitalter ist die Benutzeranmeldung zu einer der notwendigen Funktionen für fast alle Websites und Anwendungen geworden. Aus Gründen der Benutzerfreundlichkeit entscheiden sich viele Websites jedoch dafür, den Anmeldevorgang durch die Integration von Drittanbieter-Anmeldeanbietern zu vereinfachen. In diesem Artikel erfahren Sie, wie Sie die Github-Login-Integration mithilfe von PHP und OAuth implementieren.

OAuth (Open Authorization) ist ein offener Standard, der es Benutzern ermöglicht, Anwendungen von Drittanbietern den Zugriff auf ihre Ressourcen zu autorisieren, ohne ihren Benutzernamen und ihr Passwort anzugeben. Als weltweit führende Open-Source-Code-Management-Plattform bietet Github einen OAuth2.0-Authentifizierungsmechanismus für die Anmeldung von Benutzern.

Zuerst müssen wir eine OAuth-Anwendung auf Github beantragen. Melden Sie sich bei Ihrem Github-Konto an, gehen Sie zu „Einstellungen“ -> „Entwicklereinstellungen“ -> „OAuth-Apps“ und klicken Sie auf „Neue OAuth-App“, um eine neue OAuth-Anwendung zu erstellen. Geben Sie die grundlegenden Informationen der Anwendung ein, einschließlich Name, Beschreibung, Homepage-URL und Rückruf-URL. Geben Sie in der Rückruf-URL die URL ein, zu der der Benutzer nach Abschluss seiner Anmeldung zurückkehren soll. Nach Abschluss stellt Github Ihrer Anwendung eine „Client-ID“ und ein „Client-Geheimnis“ als Autorisierungsanmeldeinformationen zur Verfügung.

Als nächstes müssen wir die Github-Login-Integration in PHP implementieren. Erstellen Sie zunächst eine Datei mit dem Namen „github_login.php“ und importieren Sie die OAuth-Bibliothek:

<?php
require_once 'oauth/OAuth.php';

Dann definieren Sie die Autorisierungsdaten und die Rückruf-URL für Ihre Github-App:

$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$redirectUri = 'YOUR_REDIRECT_URL';

Bei der Github-Login-Integration müssen wir zwei Schritte implementieren. Zuerst müssen wir einen Anmeldelink generieren, damit der Benutzer darauf klickt und zur Authentifizierung zu Github springt:

$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>';

Wenn der Benutzer auf den Anmeldelink klickt, leitet Github den Benutzer mit einem Autorisierungscode zur angegebenen Rückruf-URL weiter. In der Rückruf-URL können wir den Autorisierungscode über den folgenden Code erhalten:

$code = $_GET['code'];

Als nächstes müssen wir den Autorisierungscode verwenden, um das Zugriffstoken von Github zu erhalten:

$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'];

Schließlich verwenden wir das erhaltene Zugriffstoken, um das zu erhalten Benutzer von Github-Informationen:

$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'];

Mit den oben genannten Schritten haben wir den Prozess der Github-Login-Integration mithilfe von PHP und OAuth implementiert. In praktischen Anwendungen können wir die erhaltenen Benutzerinformationen in der Datenbank speichern, um die logische Verarbeitung der Benutzerregistrierung oder -anmeldung abzuschließen.

Zusammenfassend lässt sich sagen, dass die Github-Login-Integration mit PHP und OAuth nicht kompliziert ist. Durch den von Github bereitgestellten OAuth2.0-Authentifizierungsmechanismus können wir Benutzern ein schnelles und sicheres Anmeldeerlebnis bieten. Ich hoffe, dieser Artikel kann Ihnen helfen, die Github-Login-Integration zu verstehen und zu implementieren.

Das obige ist der detaillierte Inhalt vonSo führen Sie die Github-Login-Integration mit PHP und OAuth durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn