Heim > häufiges Problem > Was ist JWT?

Was ist JWT?

coldplay.xixi
Freigeben: 2020-10-30 10:56:12
Original
9961 Leute haben es durchsucht

jwt ist nur eine Abkürzung und die vollständige Schreibweise lautet JSON Web Tokens. Es handelt sich um eine beliebte domänenübergreifende Authentifizierungslösung, ein JSON-basiertes Token, das zur Deklaration bestimmter Ansprüche im Netzwerk verwendet wird.

Was ist JWT?

JWT-Prinzip: Die JWT-Überprüfungsmethode besteht darin, Benutzerinformationen zu verschlüsseln, um ein Token zu generieren. Bei jeder Anfrage muss der Server nur den gespeicherten Schlüssel verwenden, um die Richtigkeit des Tokens zu überprüfen Es müssen keine Sitzungsdaten gespeichert werden. Dann wird der Server zustandslos und lässt sich leicht erweitern.

Benutzerinformationen vor der Verschlüsselung, wie zum Beispiel:

{
    "username": "vist",
    "role": "admin",
    "expire": "2018-12-08 20:20:20"
}
Nach dem Login kopieren

Vom Client empfangenes Token:

7cd357af816b907f2cc9acbe9c3b4625
Nach dem Login kopieren

JWT-Struktur

Ein Token ist in 3 Teile unterteilt:

Header
  • load. (Nutzlast )
  • Signatur (Signatur)
  • 3 durch „.“ getrennte Teile, wie zum Beispiel:
  • eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
    Nach dem Login kopieren

Header

Der Header-Teil von JWT ist ein JSON-Objekt, das Metadaten beschreibt, normalerweise:

{
  "typ": "JWT",
  "alg": "HS256"
}
Nach dem Login kopieren

typ ist der Deklarationstyp, geben Sie „JWT“ an

alg ist der Verschlüsselungsalgorithmus, der Standardwert ist „HS256“

kann auch der folgende Algorithmus sein:

Was ist JWT? Nutzlast

Nutzlast Es ist der Datenträger, Wird zum Speichern der tatsächlichen Dateninformationen verwendet, die übertragen werden müssen, und ist auch ein JSON-Objekt. Offizielle empfohlene JWT-Felder: muss größer sein als die Ausstellungszeit

nbf: Definieren Sie die Zeit, vor der das JWT nicht verfügbar ist.

  • iat: Die Ausstellungszeit des JWT

  • jti: Die eindeutige Identität des JWT, hauptsächlich verwendet. Verwenden Sie es als einmaliges Token, um Wiederholungsangriffe zu vermeiden.

  • Sie können auch benutzerdefinierte Felder verwenden, wie zum Beispiel:

    {
        "username": "vist",
        "role": "admin"
    }
    Nach dem Login kopieren

    Signatur
  • Der Signaturteil ist eine Signatur der ersten beiden Teile (Header, Nutzlast), um Datenmanipulationen zu verhindern.
  • Folgen Sie zum Generieren den folgenden Schritten:

    1 Geben Sie zuerst das Geheimnis an.
  • 2. Konvertieren Sie die Header- und Nutzdateninformationen in Base64.

    3. Verwenden Sie zum Schluss die Signatur (Signatur). = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), Secret)
  • Die vom Client erhaltene Signatur:

    header.payload.signature
  • kann auch erneut auf JWT Encrypt ausgeführt werden.

    JWT verwendet

    1. Der Server verschlüsselt die Benutzerinformationen entsprechend dem Anmeldestatus des Benutzers und gibt sie an den Client zurück

    2. Der Client erhält das vom Server zurückgegebene Token und speichert es in einem Cookie

    3 , Jede Kommunikation zwischen dem Client und dem Server bringt ein Token mit sich, das in die Header-Informationen der HTTP-Anforderung eingefügt werden kann, z Logik

    JWT-Funktionen

    JWT ist prägnanter und besser für die Bereitstellung in HTML- und HTTP-Umgebungen geeignet.

    JWT eignet sich für die einmalige Überprüfung, z. B.: Aktivierungs-E-Mail.

    JWT ist geeignet für zustandslose Authentifizierung

    JWT eignet sich für serverseitige CDN-Verteilungsinhalte

    Zeitsparender als Datenbanksitzungsabfragen

    JWT ist standardmäßig nicht verschlüsselt

    • Sie können das Token nicht stornieren oder ändern die Berechtigungen des Tokens während der Nutzung

    • JWT empfiehlt die Verwendung des HTTPS-Protokolls zur Übertragung des Codes

    Das obige ist der detaillierte Inhalt vonWas ist JWT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
jwt
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage