Wie weiß der Server nach der Anmeldung, dass Sie es sind? Moderne Web-Anwendungen verwenden häufig JWT zur Übermittlung von Identitätsinformationen. Das Verständnis der Struktur und Funktionsweise von JWT ist für die Entwicklung und das Debugging von Authentifizierungssystemen sehr wichtig. Dieses Tutorial erklärt JWT auf eine einfache Weise.
Was ist JWT?
JWT steht für JSON Web Token und ist ein kompaktes Token-Format zur sicheren Informationsübertragung zwischen Parteien. Es wird am häufigsten für Authentifizierung verwendet: Nach der Anmeldung des Users stellt der Server ein JWT aus, das der Client dann bei jeder Anfrage mitführt, um seine Identität zu beweisen.
Dreiteilige Struktur
Ein JWT besteht aus drei Teilen, die durch Punkte verbunden sind: Header, Payload und Signature, in der Form xxxxx.yyyyy.zzzzz.
Der Header beschreibt den Token-Typ und den Signaturalgorithmus; das Payload enthält Claims wie User-ID, Ausstellungszeit (iat) und Ablaufzeit (exp); die Signature wird mit einem Schlüssel für die ersten beiden Teile signiert, um Fälschungen zu verhindern.
Payload ist nicht verschlüsselt
Ein häufiger Irrtum: Header und Payload sind nur Base64Url-kodiert, nicht verschlüsselt. Jeder, der ein JWT erhält, kann es dekodieren und den Inhalt im Payload sehen.
Daher sollten niemals Passwörter, Bankkontonummern oder andere sensible Informationen im Payload gespeichert werden. Die Signature garantiert nur, dass der Inhalt nicht verfälscht wurde, nicht aber seine Vertraulichkeit.
Wie verhindert die Signature Fälschungen?
Die Signature wird mit einem Schlüssel berechnet, den nur der Server besitzt, basierend auf Header und Payload. Wenn jemand das Payload ändert (z. B. die User-ID ändert), stimmt die neu berechnete Signature nicht überein, und der Server erklärt das Token als ungültig.
Genau weil die Überprüfung der Signature einen Schlüssel erfordert, können reine Client-Tools nur dekodieren und anzeigen, aber nicht die Signature überprüfen – das ist ein normales und sicheres Design.
Praktische Methoden zum Debuggen von JWT
Beim Debugging muss man oft sehen, was in einem JWT enthalten ist. Mit dem JWT-Parsing-Tool von qktools können Sie das Token einfügen, um Header und Payload lokal zu dekodieren, und die Ablaufzeit wird automatisch in eine lesbare Zeit umgewandelt und angezeigt, ob es abgelaufen ist – das Token wird nicht hochgeladen.
Um die Base64Url-Kodierung besser zu verstehen, können Sie unseren Artikel über Base64 lesen oder das Base64-Enkodierungs- und Dekodierungstool ausprobieren.

