Was ist ein JWT? Aufbau, Claims und Dekodieren

Was ist ein JWT

Was ist ein JWT? Aufbau, Claims und ein privater Decoder | We.Inc

JSON Web Tokens erklärt: Header, Payload und Signatur, die sieben registrierten Claims aus RFC 7519, Sicherheitsfallen und ein Decoder, der dein Token nirgendwohin sendet.

Ein JWT (JSON Web Token) ist ein kompakter, URL-sicherer String aus drei base64url-Teilen, getrennt durch Punkte: ein Header, der den Algorithmus nennt, ein Payload mit Claims wie sub und exp und eine Signatur. Jeder kann den Payload dekodieren und lesen, nur die Signatur, geprüft mit dem richtigen Schlüssel, beweist, dass niemand ihn verändert hat.

Registrierte Claim-Namen (RFC 7519, Abschnitt 4.1)

Füge unten ein Token in den Decoder ein, um Header und Payload zu sehen, mit einer Erklärung zu jedem registrierten Claim und jedem Zeitstempel als lesbarem Datum. Das Dekodieren passiert im JavaScript dieser Seite, das Token wird also nie hochgeladen. Das ist wichtig, denn ein gültiges Token ist ein Schlüssel zum Konto einer Person.

Häufige Fragen

Ist es sicher, ein JWT online zu dekodieren?

Nur wenn das Dekodieren in deinem Browser passiert. Das Token ist ein Zugangsnachweis: Wer ein gültiges besitzt, kann die API als dieser Nutzer aufrufen, bis es abläuft. Der Decoder dieser Seite läuft lokal und sendet nichts, aber bei Produktions-Tokens ist es am sichersten, nur Test-Tokens zu dekodieren.

Ist ein JWT verschlüsselt?

Ein normales signiertes JWT (ein JWS) nicht. Sein Payload ist nur base64url-kodiert, was jeder umkehren kann. Verschlüsselte Tokens gibt es als JWE, mit fünf durch Punkte getrennten Teilen statt drei, aber die meisten Login- und API-Tokens sind signiert, nicht verschlüsselt.

In welchem Format sind exp und iat?

NumericDate: ganze Sekunden seit 1970-01-01T00:00:00Z, ohne Schaltsekunden. Date.now() in JavaScript liefert Millisekunden, teile also vor dem Vergleich durch 1000, ein sehr häufiger Bug.

Soll ich ein JWT in localStorage oder in einem Cookie speichern?

Jedes Skript auf der Seite kann localStorage lesen, ein einziger Cross-Site-Scripting-Bug kann das Token also stehlen. Ein HttpOnly-, Secure-, SameSite-Cookie hält es von Skripten fern, dafür musst du dich um CSRF kümmern. Viele Teams wählen für Browser-Sessions das Cookie.

Kann ich einen Nutzer mit einem JWT abmelden?

Nicht allein damit, denn das Token bleibt bis exp gültig. Nutze kurze Ablaufzeiten plus Refresh Tokens, die du widerrufen kannst, oder führe eine Sperrliste von jti-Werten für Tokens, die vorzeitig ungültig werden müssen.

Die drei Teile

Signaturalgorithmen

Fallen, die immer noch zu Sicherheitslücken führen

Im Code dekodieren und prüfen

Einen Payload in reinem JavaScript dekodieren

Liest die Claims, ohne sie zu prüfen. In Ordnung, um einen Nutzernamen in der UI anzuzeigen, aber nie, um über Zugriff zu entscheiden.

Auf dem Server mit jose prüfen

jwtVerify prüft Signatur, exp und nbf und mit diesen Optionen auch Issuer, Audience und den erlaubten Algorithmus.

Privater JWT-Decoder

Füge ein Token ein, um Header und Payload zu lesen. Das Dekodieren läuft in deinem Browser, das Token wird weder gesendet noch gespeichert noch protokolliert.

Wer das Token ausgestellt hat

Um wen es im Token geht, meist eine Nutzer-ID

Welche Empfänger es akzeptieren sollen

Ab diesem Zeitpunkt ablehnen

Vor diesem Zeitpunkt ablehnen

Wann das Token erstellt wurde

Eine eindeutige ID, nützlich, um Wiederverwendung zu blockieren

JWT

Beispiel-Token laden

Leeren

Header

Payload

Signatur (hier nicht geprüft)

Claims erklärt

Claim

Wert

Bedeutung

Eigener Claim

Ein signiertes JWT hat 3 durch Punkte getrennte Teile, dieses hat {n}.

5 Teile bedeuten ein verschlüsseltes JWE, das ohne den Schlüssel nicht gelesen werden kann.

Teil {n} ist kein gültiges base64url-JSON.

Abgelaufen {v}

Gültig bis {v}

Nicht gültig vor {v}

alg ist none: Dieses Token hat keine Signatur und muss abgelehnt werden.

Lokal dekodiert. Nichts verlässt diese Seite.

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap