Aktueller Standort: Startseite> Neueste Artikel> PHP OATH2 -Autorisierung: Ein vollständiger Leitfaden zum Erstellen eines Autorisierungscode -Autorisierungsservers

PHP OATH2 -Autorisierung: Ein vollständiger Leitfaden zum Erstellen eines Autorisierungscode -Autorisierungsservers

M66 2025-06-21

PHP OATH2 -Autorisierung: Ein vollständiger Leitfaden zum Erstellen eines Autorisierungscode -Autorisierungsservers

OAuth ist ein offener Standard, mit dem Drittanbieter Anwendungen sicher zugänglich sind. In OAuth2 ist die Autorisierungscode -Autorisierung der häufigste Autorisierungsart. In diesem Artikel wird ausführlich eingeführt, wie Sie einen Autorisierungscode -Autorisierungsserver in PHP erstellen, um eine sichere und zuverlässige Benutzergenehmigung zu erreichen.

OAuth2 Autorisierungscode -Prozessübersicht

Der Autorisierungsprozess für den Autorisierungscode lautet wie folgt:

  1. Der Client initiiert eine Autorisierungsanforderung an den Autorisierungsserver.
  2. Der Autorisierungsserver überprüft die Identität des Benutzers und fordert die Benutzerautorisierung an.
  3. Nachdem der Benutzer der Autorisierung zugestimmt hat, stellt der Autorisierungsserver dem Client einen Autorisierungscode aus.
  4. Der Client fordert ein Zugriffstoken aus dem Autorisierungsserver an, indem sie Informationen wie den Autorisierungscode, die Client -ID und den Client -Schlüssel verwenden.
  5. Der Autorisierungsserver überprüft Informationen und gibt Zugriffsanträge aus.
  6. Der Client verwendet das Zugriffstoken, um auf den Ressourcenserver zuzugreifen, um die Ressourcen des Benutzers zu erhalten.

Installieren Sie die Php OAuth2 -Bibliothek

Installieren Sie zunächst eine beliebte PHP OAuth2 -Bibliothek. Wir werden die Bibliothek "BSHAFFER/OAutH2-SERVER-PHP" verwenden, die über den Komponisten installiert werden kann:

 Der Komponist benötigt BSHAFFER/OATH2-SERVER-PHP

Erstellen Sie einen Autorisierungsserver

Als nächstes erstellen wir eine Datei "index.php" in PHP als unseren Autorisierungscode -Autorisierungsserver:

<?php
require_once 'vendor/autoload.php';

// erstellen PDO Instanzverbindungsdatenbank
$dsn = "mysql:dbname=testdb;host=localhost";
$username = "root";
$password = "";
$pdo = new PDO($dsn, $username, $password);

// erstellen OAuth2 Repository -Instanz
$storage = new OAuth2StoragePdo($pdo);

// erstellen授权服务器实例
$server = new OAuth2Server($storage);

// Fügen Sie unterstützte Autorisierungstypen hinzu
$server-> addgrantType (New OAuth2GrantTypeAuthorizationCode ($ Storage));

// Verarbeitungsautorisierungsanforderung $ request = oAuth2Request :: createFromGlobals ();
$ response = new OAuth2Response ();

if (! $ server-> validateAuthorizeRequest ($ request, $ response)) {
    $ response-> send ();
    sterben();
}

// Autorisierungsseite anzeigen if (leer ($ _ post)) {
    Ausfahrt(&#39;
        <form method="post">
            <label for="username">Benutzername:</label>
            <input type="text" id="username" name="username"><br><br>
            <label for="password">Passwort:</label>
            <input type="password" id="password" name="password"><br><br>
            <input type="submit" value="Autorisieren">
        </form>
    &#39;);
}

$ is_authorized = ($ _post [&#39;userername&#39;] == &#39;admin&#39; && $ _post [&#39;password&#39;] == &#39;admin&#39;);

$ server-> handleauthorizeRequest ($ request, $ response, $ is_authorized);

if ($ is_authorized) {
    $ response-> send ();
} anders {
    Echo &#39;Autorisierung fehlgeschlagen&#39;;
}

Erstellen Sie eine Datenbanktabelle

Jetzt müssen wir eine Datenbanktabelle zum Speichern von Clientinformationen erstellen. Führen Sie die folgende SQL -Anweisung in MySQL aus:

Erstellen Sie Tabelle `oAuth_clients` (
    `client_id` varchar (80) sammelt utf8_unicode_ci nicht null,
    `client_secret` varchar (80) collate utf8_unicode_ci nicht null,
    `redirect_uri` varchar (2000) sammelt UTF8_unicode_ci nicht null Standard &#39;&#39;,
    `Grant_types` varchar (80) collate utf8_unicode_ci Standard Null,
    `scope` varchar (100) collate utf8_unicode_ci Standard Null,
    `user_id` varchar (80) sortiert utf8_unicode_ci Standard Null,
    Primärschlüssel (`client_id`)
);
  

Testen der Autorisierungscode -Autorisierungsprozess

Besuchen Sie die folgende URL, um zu autorisieren:

http: //localhost/index.php? response_type = code & client_id = your_client_id & redirect_uri = your_redirect_uri & scope = scope
  

Geben Sie den Benutzernamen und das Kennwort auf der Autorisierungsseite ein (z. B. sind der Benutzername und das Kennwort sowohl "admin") und der Autorisierungscode wird zurückgegeben. Wenn die Authentifizierung des Benutzers erfolgreich ist, gibt der Server einen Autorisierungscode zurück.

Fordern Sie ein Zugriffstoken an

Verwenden Sie über Curl oder andere HTTP -Clients den erhaltenen Autorisierungscode, um einen Zugriffs -Token anzufordern:

curl -x post -d "Grant_type = Autorisierung_Code & Code = Autorisierung_Code & client_id = your_client_id & client_secret = your_client_secret & redirect_uri = your_redirect_uri" http: //localhost/token.php.
  

Ersetzen Sie den Autorisierungscode, die Client -ID, den Client -Schlüssel und den URI durch den tatsächlichen Wert um. Wenn die Anfrage erfolgreich ist, erhalten Sie ein Zugangs -Token.

Zusammenfassen

Das obige oben ist der vollständige Prozess, wie ein Autorisierungscode -Autorisierungsserver in PHP erstellt wird. Durch die Verwendung von OAUTH2 können Sie einen sicheren Autorisierungsprozess für Ihre Anwendung implementieren und die Datenschutz des Benutzers schützen.