Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie PHP und OAuth für die QQ-Login-Integration

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

WBOY
WBOYOriginal
2023-07-31 12:37:141153Durchsuche

So verwenden Sie PHP und OAuth für die QQ-Anmeldeintegration

Einführung:
Mit der Entwicklung sozialer Medien bieten immer mehr Websites und Anwendungen Anmeldefunktionen von Drittanbietern an, um Benutzern die schnelle Registrierung und Anmeldung zu erleichtern. Als eine der größten Social-Media-Plattformen Chinas ist QQ auch zu einem Anmeldedienst von Drittanbietern geworden, der von vielen Websites und Anwendungen bereitgestellt wird. In diesem Artikel werden die Schritte zur Verwendung von PHP und OAuth für die QQ-Login-Integration anhand von Codebeispielen vorgestellt.

Schritt 1: Registrieren Sie sich als QQ-Open-Plattform-Entwickler
Bevor wir mit der Integration von QQ-Login beginnen, müssen wir uns als Entwickler der QQ-Open-Plattform registrieren, um die relevanten Informationen und Schlüssel des Entwicklers zu erhalten. Die spezifischen Schritte sind wie folgt:

  1. Besuchen Sie die offizielle Website von QQ Open Platform (https://open.qq.com/).
  2. Klicken Sie oben rechts auf „Kontoverwaltung“ und melden Sie sich mit Ihrem QQ-Konto an.
  3. Klicken Sie auf „App-Verwaltung“ und dann auf „App erstellen“.
  4. Geben Sie die grundlegenden Informationen der Bewerbung ein, einschließlich Bewerbungsname, Bewerbungstyp, Bewerbungsbeschreibung usw., und reichen Sie die Bewerbung ein.
  5. Nachdem Sie die Prüfung bestanden haben, erhalten Sie eine App-ID und einen App-Schlüssel. Dies sind die wichtigsten Informationen, die wir für die QQ-Login-Integration benötigen.

Schritt 2: OAuth-Bibliothek installieren und konfigurieren
In PHP gibt es viele Bibliotheken, die das OAuth-Protokoll implementiert haben. Wir können diese Bibliotheken direkt für die QQ-Login-Integration verwenden. In diesem Artikel wird zur Veranschaulichung PHPLeague/oauth2-client als Beispiel verwendet.

  1. Verwenden Sie Composer, um die OAuth-Bibliothek zu installieren:

    composer require league/oauth2-client
  2. Erstellen Sie eine config.php-Datei und geben Sie die relevanten Konfigurationsinformationen ein:

    <?php
    return [
     'qq' => [
         'clientId' => 'your-qq-app-id',
         'clientSecret' => 'your-qq-app-key',
         'redirectUri' => 'your-redirect-url'
     ]
    ];

Schritt 3: Schreiben Sie den Code für die Anmelde- und Rückrufseite

  1. Erstellen Sie eine login.php-Datei und schreiben Sie den folgenden Code:

    <?php
    require 'vendor/autoload.php';
    
    $config = include 'config.php';
    
    $provider = new LeagueOAuth2ClientProviderGenericProvider([
     'clientId'                => $config['qq']['clientId'],
     'clientSecret'            => $config['qq']['clientSecret'],
     'redirectUri'             => $config['qq']['redirectUri'],
     'urlAuthorize'            => 'https://graph.qq.com/oauth2.0/authorize',
     'urlAccessToken'          => 'https://graph.qq.com/oauth2.0/token',
     'urlResourceOwnerDetails' => 'https://graph.qq.com/oauth2.0/me',
    ]);
    
    $authorizationUrl = $provider->getAuthorizationUrl();
    $_SESSION['oauth2state'] = $provider->getState();
    
    header("Location: $authorizationUrl");
  2. Erstellen Sie eine callback.php-Datei und schreiben Sie den folgenden Code:

    <?php
    session_start();
    
    require 'vendor/autoload.php';
    
    $config = include 'config.php';
    
    $provider = new LeagueOAuth2ClientProviderGenericProvider([
     'clientId'                => $config['qq']['clientId'],
     'clientSecret'            => $config['qq']['clientSecret'],
     'redirectUri'             => $config['qq']['redirectUri'],
     'urlAuthorize'            => 'https://graph.qq.com/oauth2.0/authorize',
     'urlAccessToken'          => 'https://graph.qq.com/oauth2.0/token',
     'urlResourceOwnerDetails' => 'https://graph.qq.com/oauth2.0/me',
    ]);
    
    if (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
     unset($_SESSION['oauth2state']);
     exit('Invalid state');
    }
    
    $token = $provider->getAccessToken('authorization_code', [
     'code' => $_GET['code']
    ]);
    
    $ownerDetails = $provider->getResourceOwner($token);
    
    $qqId = $ownerDetails->getId();
    
    // 将qqId保存到数据库,或进行其他操作
    
    echo 'QQ登录成功!';

Schritt 4: Testen Sie die Login-Funktion.

  1. Fügen Sie ein QQ-Login hinzu Link auf der Anmeldeseite, Benutzern erlauben, zum Anmelden zu klicken:

    <a href="login.php">使用QQ登录</a>
  2. Erstellen Sie eine MySQL-Datenbank und erstellen Sie eine Tabelle mit dem Namen users, um die QQ-ID des Benutzers zu speichern.
  3. Speichern Sie auf der Rückrufseite die QQ-ID des Benutzers in der Datenbank:

    // 将qqId保存到数据库中
    $conn = new mysqli('localhost', 'your-username', 'your-password', 'your-database');
    
    $qqId = $ownerDetails->getId();
    
    $sql = "INSERT INTO users (qq_id) VALUES ('$qqId')";
    $conn->query($sql);

Durch die oben genannten Schritte haben wir die Integration der QQ-Anmeldung erfolgreich implementiert. Nachdem der Benutzer auf den Anmeldelink geklickt hat, springt die Seite zur QQ-Anmeldeschnittstelle. Nachdem der Benutzer die Autorisierung abgeschlossen hat, kehrt er zur von uns angegebenen Rückrufseite zurück und wir können die QQ-ID des Benutzers abrufen und in der Datenbank speichern .

Zusammenfassung:
Dieser Artikel stellt die Schritte zur Verwendung von PHP und OAuth für die QQ-Login-Integration vor und enthält Codebeispiele. Durch die QQ-Login-Integration können wir die Funktion der schnellen Registrierung und Anmeldung für Benutzer einfach realisieren und das Benutzererlebnis verbessern. Ich hoffe, dieser Artikel hilft Ihnen!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP und OAuth für die QQ-Login-Integration. 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