JSON Web Token (JWT) ist ein offener Standard (RFC 7519), mit dem Informationen im Netzwerk sicher übertragen werden. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. Der Header enthält normalerweise den Typ des Tokens und den verwendeten Signaturalgorithmus, die Nutzlast enthält die zu übertragbaren Daten und die Signatur wird verwendet, um die Authentizität des Tokens zu überprüfen.
In ThinkPhp6 kann die JWT-Authentifizierung durch Einführung der Think-JWT-Komponente implementiert werden. Fügen Sie einfach die entsprechenden Abhängigkeiten in die Datei composer.json hinzu und installieren Sie sie.
{ "erfordern": { "Denk-jwt": "1.0.*" } }
Nach Abschluss der Installation können Sie die JWT -Authentifizierung über den folgenden Code durchführen:
In ThinkPhp6 wird JWT durch die JWT -Klasse generiert. Zunächst müssen Sie eine Konfigurationsdatei `jwt.php` erstellen, die die entsprechenden Konfigurationselemente für JWT enthält. Diese Datei sollte sich im Verzeichnis "config" befinden.
Zurückkehren [ // Signaturschlüssel 'Secret' => 'my_secret', // Ablaufzeit, Einheit ist Sekunden, Standard ist 1 Stunde 'Ablauf' => 3600, ];
Stellen Sie dann die JWT -Klasse in den Controller ein und rufen Sie die "Create" -Methode auf, um die JWT zu generieren.
Verwenden Sie Think \ jwt \ jwt; Klasse UserController erweitert den Controller { Login der öffentlichen Funktion () { // Benutzername und Passwort überprüfen ... // JWT erzeugen $ payload = [ 'user_id' => $ user-> id ]; $ jwt = jwt :: create ($ payload); return ['token' => $ jwt]; } }
Überprüfen Sie im obigen Code zuerst den Benutzernamen und das Kennwort und generieren Sie nach der Überprüfung einen JWT und geben Sie ihn an den Client zurück.
In ThinkPhp6 kann die Gültigkeit von JWT durch die JWT -Klasse überprüft werden. Führen Sie die JWT -Klasse in den Controller ein und rufen Sie die "Verify" -Methode zur Überprüfung auf.
Verwenden Sie Think \ jwt \ jwt; Klasse UserController erweitert den Controller { öffentliches Funktionsprofil () { // JWT überprüfen $ jwt = input ('token'); $ payload = jwt :: verifizieren ($ jwt); return ['user_id' => $ payload ['user_id']]; } }
Im obigen Code erhalten wir den vom Client gesendeten JWT und rufen die "Verify" -Methode zur Überprüfung auf. Nachdem die Überprüfung erfolgreich ist, können Sie die Nutzlastdaten im JWT erhalten.
In diesem Artikel verstehen wir die grundlegenden Konzepte von JWT und wie JWT zur Authentifizierung in ThinkPhp6 verwendet. Die JWT -Authentifizierung kann die Sicherheit der Schnittstelle effektiv schützen und einen unbefugten Zugriff verhindern. Entwickler können Konfigurationen entsprechend den Projektanforderungen anpassen, um die Sicherheit und Flexibilität des Authentifizierungsmechanismus zu gewährleisten.