Heim  >  Artikel  >  Backend-Entwicklung  >  Erste Schritte mit PHP: JWT-Tokens

Erste Schritte mit PHP: JWT-Tokens

PHPz
PHPzOriginal
2023-05-21 08:07:351350Durchsuche

Da sich moderne Webanwendungen ständig weiterentwickeln, werden Authentifizierung und Sicherheit immer wichtiger. Eine der beliebtesten Methoden ist die Verwendung von JWT-Tokens (JSON Web Tokens) zur Authentifizierung. Dieser Artikel führt Sie in die Grundlagen und Techniken der Implementierung von JWT-Tokens mit PHP ein.

  1. JWT-Token-Übersicht

JWT ist ein offener Standard, der eine Möglichkeit zur sicheren und effizienten Übertragung von Ansprüchen durch die Übertragung von JSON-Objekten über das Netzwerk definiert. JWT besteht aus drei Teilen: Header, Payload und Signatur. Der Header enthält den Typ des Tokens und den verwendeten Hash-Algorithmus, die Nutzlast enthält Authentifizierungs- und Autorisierungsinformationen und die Signatur ist eine Zeichenfolge, die die Header- und Nutzlast-Hashes und den Schlüssel kombiniert.

JWT unterstützt zustandslose, serverseitige Authentifizierung, sodass keine Serversitzungen oder Cookies verwendet werden müssen. Und es lässt sich leicht erweitern, da es sich um ein standardisiertes JSON-Format handelt.

  1. PHP-Implementierungsprozess

Die PHP-Sprache bietet viele Klassen zum einfachen Generieren und Überprüfen von JWT-Tags. Das Erstellen von JWT in PHP erfordert die Verwendung einer Bibliothek. Hier verwenden wir die php-jwt-Bibliothek, die kostenlos auf GitHub verfügbar ist.

Installieren Sie die PHP-JWT-Bibliothek:
Composer benötigt Firebase/php-JWT

Das Erstellen eines JWT-Tokens ist einfach, hier ist der Beispielcode:

require_once('vendor/autoload.php');
use FirebaseJWTJWT;

$key = "example_key";
$payload = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

$jwt = JWT::encode($payload, $key);
print_r($jwt);

In diesem Beispiel haben wir einen Schlüssel verwendet example_key和一些线索,比如该令牌的签发人iss,以及可以使用该令牌的接收者aud。我们还定义了JWT的生命周期,即在令牌签发时间iat之后和比当前时间点nbfder vorher hätte funktionieren sollen.

Das Endergebnis des JWT ist eine lange Zeichenfolge in der Form AAA.BBB.CCC. AAA ist der Header, BBB ist die Nutzlast und CCC ist die Signatur, die vom Schlüssel generiert wird.

Für die Überprüfung des JWT-Tokens ist derselbe Schlüssel erforderlich. Der Beispielcode lautet wie folgt:

require_once('vendor/autoload.php');
use FirebaseJWTJWT;

$key = "example_key";
$jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vZXhhbXBsZS5vcmciLCJhdWQiOiJodHRwOi8vZXhhbXBsZS5jb20iLCJpYXQiOjEzNTY5OTk1MjQsIm5iZiI6MTM1NzAwMDAwMCwiZXhwIjoxMzU3MDAwMDAwfQ.kn4N5lvvvdQhL7rEixJOaYWKQZ3GzrCc8REIzc2Kw8c";

$decoded = JWT::decode($jwt, $key, array('HS256'));

print_r($decoded);

Wenn das Token erfolgreich dekodiert werden kann, gibt Ihr Code dasselbe assoziative Array wie in der Nutzlast aus. Wenn die Authentifizierung fehlschlägt, wird eine Ausnahme ausgelöst.

  1. Fazit

In diesem Artikel wird erklärt, wie man JWT-Tokens mit PHP implementiert. JWT ist ein einfaches und nützliches Tool, das Ihre Anwendung sicherer machen und die Verwendung herkömmlicher Sitzungsmechanismen vermeiden kann. Wir hoffen, dass dieser Artikel Ihnen geholfen hat, JWT besser zu verstehen und es in PHP-Anwendungen zu verwenden.

Das obige ist der detaillierte Inhalt vonErste Schritte mit PHP: JWT-Tokens. 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