JWT-dekoder
Indsæt et JSON Web Token, og læs header og payload som formateret JSON, med udløbs- og udstedelsestidspunkt vist som datoer og en note om, hvorvidt tokenet er gyldigt lige nu. Afkodningen foregår udelukkende i din browser, hvilket er vigtigt, når tokenet er et aktivt adgangsbevis.
0 tegn · 0 ord · 0 linjer
0 tegn · 0 ord · 0 linjer
Kører udelukkende i denne browserfane. Din tekst bliver aldrig uploadet eller gemt.
Registrerede claims
De syv claim-navne, der er defineret i RFC 7519 §4.1. Alle er valgfrie; tider er sekunder siden 1970-01-01 UTC.
| Claim | Betydning |
|---|---|
iss | Issuer: hvem der har oprettet og signeret tokenet |
sub | Subject: brugeren eller enheden, som tokenet handler om |
aud | Audience: hvem tokenet er beregnet til |
exp | Udløbstidspunkt: afvis tokenet efter dette tidspunkt |
nbf | Ikke før: afvis tokenet før dette tidspunkt |
iat | Udstedt: hvornår tokenet blev oprettet |
jti | JWT-ID: unik identifikator, bruges til at forhindre replay |
Almindelige alg-værdier
| alg-værdi | Betydning |
|---|---|
HS256 | HMAC med SHA-256; én delt hemmelighed signerer og verificerer |
RS256 | RSA PKCS#1 v1.5-signatur med SHA-256; privat nøgle signerer, offentlig nøgle verificerer |
PS256 | RSA-PSS med SHA-256 |
ES256 | ECDSA på P-256-kurven med SHA-256; korte signaturer |
EdDSA | Ed25519- eller Ed448-signaturer |
none | Usigneret token; servere bør afvise det |
Det indeholder et JSON Web Token
JWT er defineret i RFC 7519 (maj 2015), som foreslår at udtale det som det engelske ord "jot". Den almindelige signerede form består af tre Base64url-strenge samlet med punktummer: header.payload.signature. Headeren angiver signeringsalgoritmen i alg, for eksempel HS256 eller RS256, og ofte et nøgle-id i kid. Payload indeholder claims, JSON-felter som sub (brugeren), iss (udstederen), aud (den tiltænkte modtager) samt exp, nbf og iat, som er tidspunkter i sekunder siden 1. januar 1970 UTC. Dekoderen omregner disse tre til din lokale tid og ISO 8601 og fortæller dig, om tokenet er udløbet, endnu ikke er gyldigt eller ligger inden for sin gyldighedsperiode.
Base64url er en kodning, ikke kryptering, så alle der har et token, kan læse dets payload præcis som denne side gør. Læg aldrig adgangskoder, kortnumre eller andre hemmeligheder i claims. Et token med fem dele adskilt af punktummer er en JWE, et krypteret token. Indholdet kan ikke læses uden nøglen, og dekoderen fortæller dig det. Et indledende "Bearer " kopieret fra en Authorization-header fjernes automatisk.
Derfor verificeres signaturen ikke her
Signaturen beviser, at headeren og payload er lavet af en, der har nøglen, og at de ikke er ændret siden. Kontrollen kræver nøglen: den delte hemmelighed til HMAC-algoritmer som HS256 eller udstederens offentlige nøgle til RS256, ES256 eller EdDSA. Det er en dårlig idé at indsætte en signeringshemmelighed fra produktion på en webside, og en dekoder, der lod som om den kunne stå inde for et token uden nøgle, ville give falsk tryghed. Derfor viser dette værktøj signaturen, men verificerer den ikke. Betragt det, du ser, som noget tokenet hævder, ikke som fakta.
Verifikation hører hjemme på din server, med et vedligeholdt bibliotek og den forventede algoritme fastlåst. To historiske fejl forklarer hvorfor: at acceptere alg "none", som lader enhver forfalske et usigneret token, og algoritmeforveksling, hvor en server, der forventer RS256, narres til at kontrollere en HS256-signatur med den offentlige nøgle som HMAC-hemmelighed. En dekoder er til fejlfinding: at se hvilke claims en udbyder udsteder, opdage en forkert audience eller finde ud af, at en session fejlede, fordi exp udløb for et minut siden. Hvis du vil læse Base64url-segmenterne i rå form, kan du bruge Base64-dekoderen.
Ofte stillede spørgsmål
- Er det sikkert at indsætte et rigtigt access token i en JWT-dekoder?
- På denne side forlader tokenet aldrig din browser. Alligevel fungerer et gyldigt token som en adgangskode, indtil det udløber, så brug helst udløbne eller test-tokens, og hold aktive tokens ude af skærmbilleder og chats.
- Hvorfor vises mit token som udløbet, når det lige er udstedt?
- Tjek først din enheds ur. Nogle udstedere giver adgangstokens en levetid på kun få minutter, og et token kopieret fra en log kan være ældre, end det ser ud. En exp angivet i millisekunder i stedet for sekunder giver det modsatte og lander tusindvis af år ude i fremtiden.
- Kan andre ændre payloaden i mit JWT?
- De kan redigere og genkode det, men signaturen passer ikke længere. En server, der verificerer signaturer med den rigtige nøgle og algoritme, afviser det ændrede token.
- Hvad er forskellen på JWS og JWE?
- En JWS (RFC 7515) er signeret, har tre dele, og alle kan læse den. En JWE (RFC 7516) er krypteret, har fem dele, og kun nøgleindehaveren kan læse payload.
- Bliver et JWT ugyldigt, når man logger ud?
- Ikke i sig selv. Et signeret JWT forbliver gyldigt indtil exp, medmindre serveren fører en spærreliste eller tjekker en sessionspost, og derfor får adgangstokens normalt en kort levetid.