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
- Lim JWT-en din inn i boksen (hele strengen, inkludert alle tre punktumdelte deler).
- Header og payload dekodes automatisk mens du skriver.
- Sjekk utløpslinjen hvis tokenet har en «exp»-claim — den viser nøyaktig dato og om tokenet har utløpt.
- Klikk «Kopier» under en av boksene for å kopiere den delen som JSON.
Eksempel
Inndata
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQResultat
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
| Claim | Betydning |
|---|---|
| sub | Subject — vanligvis bruker-ID-en tokenet representerer |
| exp | Utløpstidspunkt (Unix-tidsstempel) — tokenet er ugyldig etter dette |
| iat | Issued at — når tokenet ble opprettet |
| iss | Issuer — hvilken tjeneste/server som utstedte tokenet |
| aud | Audience — hvilken tjeneste tokenet er ment for |
| role / roles / scope | Egendefinerte 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.