Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Entwicklung: So verwenden Sie JWT zum Schutz der Benutzerauthentifizierungsinformationen

PHP-Entwicklung: So verwenden Sie JWT zum Schutz der Benutzerauthentifizierungsinformationen

王林
王林Original
2023-06-15 20:58:421684Durchsuche

Bei der heutigen Entwicklung von Webanwendungen ist der Schutz der Identitätsauthentifizierungsinformationen der Benutzer von entscheidender Bedeutung. JWT (JSON Web Token) ist eine sichere Identitätsauthentifizierungsmethode, die das JSON-Format zur Verschlüsselung von Authentifizierungsinformationen verwendet und Signaturen zum Schutz der Datenintegrität verwendet. In diesem Artikel wird erläutert, wie Sie JWT zum Schutz von Benutzerauthentifizierungsinformationen in der PHP-Entwicklung verwenden.

  1. JWT installieren

Zuerst müssen wir JWT im PHP-Projekt installieren. JWT kann mit dem Composer-Tool installiert werden. Der Befehl lautet wie folgt:

composer require firebase/php-jwt
  1. Generate JWT

Nachdem sich der Benutzer erfolgreich authentifiziert hat, müssen wir das JWT generieren und an den Client zurücksenden. In PHP können Sie JWT mit dem folgenden Code generieren:

use FirebaseJWTJWT;

$payload = array(
    "user_id" => 1234,
    "email" => "john@doe.com"
);

$secret_key = "secret_key";
$jwt = JWT::encode($payload, $secret_key);

Verwenden Sie die Methode JWT::encode(), um JWT zu generieren. Der erste Parameter ist ein assoziatives Array, das Benutzerinformationen enthält, und der zweite Parameter ist der Schlüssel, der zum Signieren des JWT verwendet wird. Das generierte JWT kann direkt an den Client zurückgegeben werden.

  1. JWT überprüfen

Sobald der Client das JWT empfängt, speichert er das JWT lokal und sendet es bei jeder Anfrage, damit der Server den Benutzer authentifizieren kann. Um in PHP ein JWT zu validieren, müssen Sie den folgenden Code verwenden:

use FirebaseJWTJWT;

$jwt = "generated_jwt";

$secret_key = "secret_key";
try {
    $decoded = JWT::decode($jwt, $secret_key, array("HS256"));
    $user_id = $decoded->user_id;
    $email = $decoded->email;
} catch (Exception $e) {
    // JWT 验证失败
}

Verwenden Sie die Methode JWT::decode(), um ein JWT zu validieren. Der erste Parameter ist das zu verifizierende JWT, der zweite Parameter ist der zum Signieren des JWT verwendete Schlüssel und der dritte Parameter gibt den verwendeten Signierungsalgorithmus an. Wenn die JWT-Validierung erfolgreich ist, wird ein Objekt $decoded zurückgegeben, das die Benutzerinformationen enthält.

  1. Benutzerdefinierte Gültigkeits- und Ablaufzeit

Standardmäßig enthält JWT keine Gültigkeitsdauer oder Ablaufzeit, sodass es für immer verwendet werden kann. Um die Identitätsauthentifizierungsinformationen des Benutzers besser zu schützen, können wir den Gültigkeitszeitraum und die Ablaufzeit von JWT festlegen.

use FirebaseJWTJWT;

$payload = array(
    "user_id" => 1234,
    "email" => "john@doe.com",
    "exp" => time() + 3600,  // 有效期为 1 小时
    "nbf" => time() + 30  // 在 30 秒内无效
);

$secret_key = "secret_key";
$jwt = JWT::encode($payload, $secret_key);

Im obigen Code deklarieren wir die Gültigkeit und Ablaufzeit des JWT, indem wir „exp“ (Gültigkeitszeitraum) und „nbf“ (nicht vorher) festlegen. Bei der Validierung eines JWT mit der Methode JWT::decode() wird eine Ausnahme ausgelöst, wenn das JWT abgelaufen ist oder seinen Gültigkeitszeitraum noch nicht erreicht hat.

  1. Zusammenfassung

Die Verwendung von JWT in der PHP-Entwicklung ist eine sichere Authentifizierungsmethode, die uns helfen kann, Benutzerauthentifizierungsinformationen besser zu schützen. Wir können die PHP-JWT-Bibliothek zum Generieren und Überprüfen von JWT verwenden und Gültigkeits- und Ablaufzeiten festlegen, um die Sicherheit zu erhöhen. Um die Sicherheit unserer Anwendung zu gewährleisten, müssen wir JWT-Schlüssel sorgfältig behandeln und über eine ordnungsgemäße Fehlerbehandlung verfügen.

Das obige ist der detaillierte Inhalt vonPHP-Entwicklung: So verwenden Sie JWT zum Schutz der Benutzerauthentifizierungsinformationen. 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