CodeKitHub
Kodingsverktøy

JWT-dekoder

Sist oppdatert:

Lim inn en hvilken som helst JWT (JSON Web Token) og se header og payload dekodet og formatert umiddelbart — inkludert om den er utløpt. Alt skjer i nettleseren din: tokenet sendes aldri noe sted, og ingen signaturverifisering utføres (dette verktøyet dekoder bare, det sjekker ikke om tokenet er ekte).

Header

Payload

Decoded entirely in your browser — no signature verification, and the token is never sent anywhere.

Hva er dette verktøyet?

En JWT (JSON Web Token) er en kompakt, URL-sikker streng brukt til å bære claims mellom to parter — oftest som et autentiseringstoken etter innlogging. Den har tre punktumdelte deler: en header (algoritme og tokentype), en payload (de faktiske claims — bruker-ID, roller, utløp osv.) og en signatur (brukt av serveren for å verifisere at tokenet ikke er tuklet med).

Header og payload er bare Base64URL-kodet JSON — ikke kryptert — så hvem som helst kan dekode og lese dem uten en hemmelig nøkkel. Bare signaturen krever en hemmelighet for å verifisere. Det er nøyaktig det dette verktøyet gjør: dekoder de lesbare delene og viser dem som formatert JSON, uten å forsøke å verifisere signaturen.

JWT-er er standardisert i RFC 7519, med signaturlaget (JWS) definert separat i RFC 7515 — nyttige referanser når du trenger den autoritative listen over registrerte claims som exp, iat, sub og aud.

Hvorfor bruke det?

  • Umiddelbart lesbar header og payload, formatert som JSON — ikke nødvendig å dele strengen manuelt og Base64-dekode den for hånd lenger.
  • Automatisk utløpssjekk: hvis payloaden har en «exp»-claim, konverteres den til en lesbar dato og merkes som utløpt eller gyldig.
  • Ett-klikks kopiering for header eller payload hver for seg.
  • 100 % klientsidebasert — tokenet dekodes lokalt og overføres aldri, trygt å bruke selv med tokener fra et produksjonssystem.
  • Ingen signaturverifisering utføres eller hevdes — dette er et feilsøkings-/inspeksjonsverktøy, ikke en validator.

Slik bruker du det

  1. Lim JWT-en din inn i boksen (hele strengen, inkludert alle tre punktumdelte deler).
  2. Header og payload dekodes automatisk mens du skriver.
  3. Sjekk utløpslinjen hvis tokenet har en «exp»-claim — den viser nøyaktig dato og om tokenet har utløpt.
  4. Klikk «Kopier» under en av boksene for å kopiere den delen som JSON.

Eksempel

Inndata

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQ

Resultat

Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}

Signaturen (tredje del) dekodes eller sjekkes aldri — det er en ugjennomsiktig hash brukt server-side for å verifisere ektheten.

Praktiske tips

  • Feilsøker du «ugyldig token»-feil: dekod payloaden først for å sjekke «exp»-claimen — et utløpt token er den vanligste årsaken, og det er ikke alltid åpenbart fra feilmeldingen alene.
  • Sjekker du hva et tredjeparts-API sitt token faktisk inneholder: mange API-er returnerer et ugjennomsiktig JWT som et tilgangstoken — dekod det her for å se scope, bruker-ID eller utløp integrasjonen din faktisk mottar.
  • Anta aldri at en JWT er kryptert: hvis du ser sensitive data (e-post, interne ID-er) i en dekodet payload under utvikling, er det et signal om å flytte de dataene til serversiden i stedet for å stole på at klienten ikke leser dem.

Vanlige claims du vil se i en payload

ClaimBetydning
subSubject — vanligvis bruker-ID-en tokenet representerer
expUtløpstidspunkt (Unix-tidsstempel) — tokenet er ugyldig etter dette
iatIssued at — når tokenet ble opprettet
issIssuer — hvilken tjeneste/server som utstedte tokenet
audAudience — hvilken tjeneste tokenet er ment for
role / roles / scopeEgendefinerte claims — tillatelser eller roller gitt til brukeren (ikke en del av JWT-standarden, men svært vanlig)

Ofte stilte spørsmål

Verifiserer dette verktøyet JWT-signaturen?

Nei. Å verifisere en signatur krever den hemmelige nøkkelen eller den offentlige nøkkelen som ble brukt til å signere tokenet, noe bare den utstedende serveren har. Dette verktøyet dekoder bare header og payload — de menneskelesbare delene — slik at du kan inspisere claims og utløp uten å trenge noen nøkkel.

Er det trygt å lime inn en ekte produksjons-JWT her?

Dekodingen skjer helt i nettleseren din via JavaScript — tokenet sendes aldri til noen server, inkludert vår. Behandle likevel tokener som passord: ikke lim dem inn i verktøy du ikke stoler på, og unngå å dele skjermbilder av dekodede tokener som inneholder sensitive claims.

Hvorfor kan hvem som helst lese payloaden i JWT-en min uten passord?

Slik er det designet — header og payload i en JWT er Base64URL-kodet, ikke kryptert. Koding er ikke sikkerhet; det gjør bare JSON-en URL-sikker å overføre. Legg aldri hemmeligheter (passord, kortnumre) direkte i en JWT-payload — anta at alle som har tokenet kan lese innholdet.

Hva betyr «exp»-claimen og hvorfor er den viktig?

«exp» er tokenets utløpstidspunkt, som et Unix-tidsstempel (sekunder siden 1970). Servere avviser en JWT når dette tidspunktet er passert, og tvinger klienten til å autentisere seg på nytt. Dette verktøyet konverterer det til en lesbar dato og markerer om det allerede er utløpt, noe som er nyttig for å feilsøke «hvorfor ble jeg logget ut»-problemer.

Tokenet mitt viser en JSON-parsefeil — hvorfor?

Enten er ikke strengen en gyldig JWT (skal være nøyaktig tre punktumdelte deler), eller den er blitt avkortet eller endret — en vanlig årsak er et token som ved et uhell er delt over flere linjer eller mangler avsluttende tegn ved kopiering.

Relaterte verktøy