JWT Decoder kostenlos online nutzen
Dekodiert JWT Header und Payload lokal im Browser für Debugging-Zwecke.


Philipp Bolender
Founder
header 36 · payload 127 · signature 43
Header
{
"alg": "HS256",
"typ": "JWT"
}Payload
{
"sub": "usr_42",
"email": "philipp@example.com",
"role": "admin",
"iat": 1782000000,
"exp": 1782086400
}Validierungs-Checks (clientseitig, ohne Signaturprüfung)
Ablauf (exp)
abgelaufen vor 71 d
Ausstellung (iat)
vor 72 d
Algorithmus
HS256 (Standard)
Claims im Klartext
| Claim | Wert | Bedeutung |
|---|---|---|
| sub | usr_42 | Subject — User-ID oder Entity |
| philipp@example.com | E-Mail-Adresse | |
| role | admin | Rolle des Users |
| iat | 178200000021.06.2026, 00:00:00 | Issued At — Ausstellungszeitpunkt |
| exp | 178208640022.06.2026, 00:00:00 | Expiration — Ablaufzeitpunkt (Unix) |
JWT-Struktur auf einen Blick
| Segment | Inhalt | Encoding |
|---|---|---|
| Header | alg, typ, kid — beschreibt Signatur-Algorithmus | Base64URL(JSON) |
| Payload | Claims: iss, sub, aud, exp, iat + custom | Base64URL(JSON) |
| Signature | HMAC oder RSA/EC-Signatur über header.payload | Base64URL(Bytes) |
Häufig gestellte Fragen
Wird die Signatur geprüft?
Nein. Signaturprüfung braucht das Secret (HS256) oder den Public Key (RS256/ES256). Der Decoder zeigt Header, Payload und Ablauf — Signaturvalidierung gehört serverseitig in dein Backend (Supabase getClaims, jose, jsonwebtoken).
Ist es sicher, meinen Token hier einzufügen?
Das Decoding läuft rein im Browser — nichts wird gesendet. Trotzdem: Produktions-Tokens niemals teilen; nutze Test-Tokens oder revoke sie danach.
Was heißt alg: none?
Ein historischer JWT-Fehler: Manche Libraries akzeptierten Tokens ohne Signaturprüfung, wenn der Header 'none' angab. Immer serverseitig ablehnen.
Warum sind exp und iat in Sekunden?
RFC 7519 definiert NumericDate als Sekunden seit Epoch. JavaScript rechnet in Millisekunden — Faktor 1000 nicht vergessen (der Decoder erkennt beide Formate automatisch).
Welche Claims sollte jeder Token haben?
iss (Issuer), sub (User-ID), aud (Audience), exp (Ablauf), iat (Ausstellung). Optional: nbf, jti, scope/role. Supabase-Tokens enthalten zusätzlich role, email, aud='authenticated'.
Typischer Einsatz von JWT Decoder
Ein Login schlägt fehl oder eine API antwortet mit 401, und du musst sehen, was tatsächlich im Token steht: Aussteller, Ablaufzeit, Rollen. Der Decoder zeigt Header und Payload lesbar an — lokal im Browser.
Ablauf der Umwandlung
- 1Token einfügen. Der komplette String mit beiden Punkten. Nutze zum Debuggen möglichst Testkonten statt produktiver Nutzertoken.
- 2Header lesen. alg und kid zeigen Signaturverfahren und verwendeten Schlüssel — hilfreich bei Schlüsselrotation.
- 3Payload prüfen. exp, iat, iss, aud und sub. Abgelaufene Tokens sind die mit Abstand häufigste 401-Ursache.
- 4Rollen abgleichen. Wenn Berechtigungen fehlen, prüfe die Claims gegen das, was deine Autorisierung erwartet.
Ergebnis gegenprüfen
- exp und iat sind Unix-Zeitstempel in Sekunden, nicht Millisekunden — ein Faktor 1000 an der falschen Stelle erzeugt Tokens mit absurden Laufzeiten.
- Dekodieren ist keine Prüfung: Der Payload ist nur Base64, jeder kann ihn lesen. Vertrauenswürdig wird er erst durch die Signaturprüfung auf dem Server.
- Sensible Daten gehören nicht in den Payload — er ist nicht verschlüsselt.
Kurz beantwortet
Wird mein Token hochgeladen?
Nein, die Dekodierung passiert im Browser. Trotzdem gilt: produktive Tokens sind Zugangsdaten, behandle sie entsprechend.
Warum ist mein Token gültig, wird aber abgelehnt?
Häufig passt aud oder iss nicht zur erwartenden Anwendung, oder Server- und Client-Uhr laufen auseinander.
Verwandte Helfer
Bau dein eigenes AI SaaS – ohne Dev-Team, ohne Bullshit.
Mein Vibecoding-Playbook: wie du mit Lovable, Cursor & Co. in Wochen (nicht Jahren) ein profitables Micro-SaaS baust, launched und monetarisierst.