JWT-Decoder teilt einen JSON-Web-Token in seine drei durch Punkt getrennten Segmente auf, base64url-dekodiert den Header und die Nutzlast und rendert beide als formatiertes JSON. JWTs sind nicht verschlüsselt - die "Codierung" ist nur base64url, eine umkehrbare Transformation -, sodass jeder, der einen Token besitzt, jeden Anspruch darin lesen kann. Dieses Tool führt diese Inspektion sofort ein: Fügen Sie einen Token aus einem Set-Cookie-Header, einen Autorisierungs-Header (das Träger-Präfix wird automatisch entfernt) oder das Dashboard Ihres Authentifizierungsanbieters ein und sehen Sie genau, was Ihr Server dort eingefügt hat.
In der Claims-Tabelle findet tatsächlich das Debuggen statt. Registrierte Zeitansprüche - EXP (Expiration), IAT (ausgegeben am) und NBF (nicht vorher) - sind Unix-Zeitstempel, die nutzlos sind, um RAW zu lesen. Der Decoder wandelt jeweils ein menschliches Datum und eine relative Zeit ("Vor 3 Stunden abgelaufen", "läuft in 14 Minuten ab") und markiert abgelaufene Token in rot. Die meisten "401 nicht autorisierten, aber der Token sieht gut aus" -Vorfällen laufen auf einen abgelaufenen EXP, einen uhrverdrehten NBF oder eine AUD-Anspruchserteilung, die nicht mit dem übereinstimmt, was die API validiert - alles hier in zwei Sekunden sichtbar.
Eine Sache, die dieses Tool absichtlich nicht tut: Signaturen überprüfen. Für die Überprüfung ist der Signing Secret (HS256) oder der öffentliche Schlüssel (RS256 / ES256) erforderlich, und ein clientseitiges Tool, das Sie zum Einfügen eines HMAC-Geheimnisses fordert, würde schlechte Gewohnheiten lehren. Die Dekodierung ist zu 100% clientseitig - der Token verlässt Ihren Browser nie, trifft auf keinen Server und wird in keinem Anfrageprotokoll angezeigt, was zählt, da ein Live-Produktions-JWT ein Bestandsnachweis ist. Wer es hat, bist du.
Lassen Sie das JWT in den Eingabebereich fallen. Holen Sie es sich aus dem Autorisierungsheader in Ihrem Browser DevTools Netzwerk, ein Cookie, LocalStorage oder eine Curl-Antwort. Ein führendes Präfix "Bearer" und die umgebenden Leerzeichen werden automatisch entfernt, sodass Sie den gesamten Header-Wert ohne Bereinigung einfügen können.
Beide Segmente rendern als formatierte JSON nebeneinander. Der Header informiert Sie über den Signaturalgorithmus (ALG: RS256, HS256, etc.) und Key ID (Kid) - Nützlich, wenn sich Ihre JWKS-Rotation schlecht benimmt. Die Nutzlast enthält die Ansprüche: Sub, ISS, AUD, Bereiche, Rollen und alle benutzerdefinierten Daten, die Ihre Authentifizierungsschicht hinzugefügt hat.
Zeitansprüche (EXP, IAT, NBF) werden von Unix-Sekunden in lesbare Daten mit relativen Zeiten dekodiert. Eine abgelaufene EX zeigt in Rot mit genau, wie lange sie vergangen ist, eine gültige EX-Anzeige mit der verbleibenden Zeit in Grün. Wenn NBF in der Zukunft - normalerweise eine Uhrzeit zwischen Ihren Servern - ist, wird das Token abgelehnt, obwohl es gut "sieht".
Dieses Tool überprüft niemals die Signatur – das erfordert den geheimen oder öffentlichen Schlüssel und gehört auf Ihren Server, nicht in ein Browser-Tool. Behandeln Sie dekodierte Ansprüche niemals als vertrauenswürdige Eingabe: Ein Angreifer kann einen Token mit jeder gewünschten Nutzlast prägen. Nur eine verifizierte Unterschrift beweist, dass die Ansprüche von Ihrem Emittenten unverändert stammen.
Base64URL-Dekodierung in reinem TypeScript – beide JSON-Segmente formatiert und sofort lesbar
EXP-Anspruch rot markiert, wenn er abgelaufen ist, grün, wenn gültig, mit genauer relativer Zeit in beiden Richtungen
exp, iat und nbf konvertiert von rohen Unix-Sekunden in ISO-Dates und Phrasierung im Stil von "3 Stunden".
Fügen Sie den gesamten Autorisierungs-Header ein - "Bearer" und Streu-Whitespace werden automatisch entfernt
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text
Encode and decode text to/from Base64 format
Convert between Unix timestamps and human-readable dates
Format, validate, and minify JSON data
0 comments
No comments yet. Be the first to share your thoughts!