Aktueller Standort: Startseite> Neueste Artikel> Vollständige Anleitung zur Implementierung der JWT -Authentifizierung in ThinkPhp6

Vollständige Anleitung zur Implementierung der JWT -Authentifizierung in ThinkPhp6

gitbox 2025-07-14

Was ist JWT?

JWT (JSON Web Token) ist ein Verschlüsselungs -Token, mit dem sichere Informationen zwischen Netzwerkanwendungen übergeben. Es überträgt die Informationen zwischen dem Client und dem Server in Form eines JSON -Objekts sicher.

Wie JWT funktioniert

JWT besteht aus drei Teilen: Header, Nutzlast und Signatur.

Header: Deklariert den Typ- und Verschlüsselungsalgorithmus des Tokens. Beispiel:

 {
  "alg": "HS256",
  "typ": "JWT"
}

Nutzlast: Enthält einige Standarddeklarationen und benutzerdefinierte Deklarationen. Beispiel:

 {
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Signatur: Generieren Sie die Basis64 -Codierung des Headers und die Nutzlast mit einem Schlüssel.

Schritte zur Verwendung von JWT -Überprüfung in ThinkPhp6

Installieren Sie die JWT -Erweiterung

Um die JWT -Überprüfung in ThinkPhp6 zu verwenden, müssen Sie zuerst die JWT -Erweiterung installieren. Fügen Sie in der Datei composer.json im Projektverzeichnis die folgenden Abhängigkeiten hinzu:

 "require": {
  "firebase/php-jwt": "5.0.0"
}

Führen Sie dann den Befehl Composer Install aus, um die JWT -Erweiterung zu installieren.

Token erzeugen

Nachdem wir uns erfolgreich angemeldet haben, können wir ein Token generieren und an den Kunden zurückgeben. Beispielcode:

 use think\jwt\JWT;

public function login() {
  // Logik -Logik
  $payload = [
    'sub' => $user->id,
    'name' => $user->username,
    'iat' => time()
  ];
  $token = JWT::encode($payload, $key);
  return json(['token' => $token]);
}

Überprüfen Sie das Token

Wo immer Sie die Identität des Benutzers überprüfen müssen, können Sie JWT verwenden, um die Gültigkeit des Tokens zu überprüfen. Beispielcode:

 use think\jwt\JWT;

public function getUser(Request $request) {
  $token = $request->header('Authorization');
  try {
    $payload = JWT::decode($token, $key, ['HS256']);
    $user = User::get($payload->sub);  // Holen Sie sich Benutzerinformationen aus der Datenbank
    return json($user);
  } catch (Exception $e) {
    return json(['error' => 'Token is invalid']);
  }
}

Zusammenfassen

JWT ist eine bequeme und sichere Authentifizierungsmethode, und es ist auch sehr einfach, die JWT -Authentifizierung in ThinkPhp6 zu implementieren. Durch das Generieren und Überprüfen von Token kann die Identität des Benutzers effektiv geschützt werden. Gleichzeitig kann der Schutz des geheimen Schlüssels und der angemessene Festlegung der Ablaufzeit des Tokens die Systemsicherheit weiter verbessern.