In der folgenden thinkphpFramework-Tutorial-Kolumne erfahren Sie, wie Sie JWT in thinkphp6.0.7 verwenden. Ich hoffe, dass es für Freunde in Not hilfreich ist!
Super detaillierte Erklärung der Verwendung von JWT in thinkphp6.0.7 (einschließlich Code)
Was ist JWT?
JWT ist die Abkürzung für JSON Web Token. Es verschlüsselt Benutzerinformationen im Token und der Server speichert keine Benutzerinformationen. Der Server überprüft die Richtigkeit des Tokens anhand des gespeicherten Schlüssels. Solange dieser korrekt ist, wird die Überprüfung bestanden. Die tokenbasierte Authentifizierung kann die herkömmliche Cookie- und Sitzungsauthentifizierungsmethode ersetzen.
Sitzungsbasierte Anmeldeauthentifizierung
Da bei der herkömmlichen Benutzeranmeldeauthentifizierung HTTP zustandslos ist, wird die Sitzungsmethode verwendet. Wenn sich der Benutzer erfolgreich anmeldet, garantiert der Server eine Sitzung und gibt dem Client natürlich eine Sitzungs-ID. Der Client speichert die Sitzungs-ID in einem Cookie und jede Anfrage trägt diese Sitzungs-ID.
Das Cookie+Sitzungsmodell wird normalerweise im Speicher gespeichert, und der Dienst wird mit Problemen bei der Sitzungsfreigabe von einem einzelnen Dienst zu mehreren Diensten konfrontiert sein, wenn die Anzahl der Benutzer zunimmt. Dies ist bei JWT nicht der Fall. Es erfordert lediglich, dass der Server ein Token generiert, der Client das Token speichert, jede Anfrage das Token überträgt und der Server es authentifiziert und analysiert.
JWT besteht aus drei Teilen: Header.Payload.Signature JWT-Nutzungsprozess
{ "alg": "HS256", "typ": "JWT" }
jwt-Version
Es gibt mehrere Versionen von jwt in PHP: Ich habe die neueste Version ausgewählt. Fragen Sie sich nicht, warum Sie beim Kauf elektronischer Produkte immer neue statt alte kaufen. Wenn Sie sich das Bild ansehen, können Sie sehen, dass Version 4.1.0 mehr Parameter unterstützt. Die spezifischen Parameter werden unten erläutert
Installieren Sie jwt
1. Verwenden Sie Composer, um lcobucci/jwt zu installieren
2. Klicken Sie auf mich, um zur Github-Adresse zu springen:https :// github.com/lcobucci/jwt
Hängt davon ab
对应base64UrlEncode编码为:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 说明:该字段为json格式。alg字段指定了生成signature的算法,默认值为 HS256,typ默认值为JWT
Namenserklärung
Emittent (Emittent) anforderndes Unternehmen, das kann Seien Sie der Benutzer, der die Anfrage initiiert hat. Die Informationen können auch der Aussteller des JWT sein.sub (Betreff) Legen Sie den Betreff fest, ähnlich dem Betreff beim Senden einer E-Mail.
Aud (Zielgruppe) die Partei, die das JWT erhält.Exp (Ablauf) Token-Ablauf Zeit nbf (nicht vorher) Die aktuelle Zeit liegt in Vor der nbf-Einstellungszeit kann das Token nicht verwendet werden iat (ausgestellt um) Token-Erstellungszeit
jti (JWT-ID) Legen Sie eine eindeutige Kennung für das aktuelle Token festWie Um JWT in PHP zu implementieren
Ich verwende PHP 7.3.4. Kein Unsinn, gehen Sie einfach zum Code, erstellen Sie eine neue jwt.php, kopieren Sie sie und fügen Sie sie wie folgt ein:{ "sub": "1234567890", "name": "John Doe", "iat": 1516239022 }
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung von JWT in thinkphp6.0.7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!