JWT-dekoder: Dekod og inspiser JSON Web Tokens
Dekod JSON Web Tokens (JWT) lokalt i nettleseren og inspiser header, payload og utløpstid.
Slik fungerer det
En JWT består av tre Base64URL-deler: header, payload og signatur. Verktøyet dekoder de to første og viser tidsstempler som iat og exp i lesbar form. Signaturen verifiseres ikke, det krever en hemmelig nøkkel. Alt skjer lokalt i nettleseren.
Om dette verktøyet
JSON Web Token (JWT) er et kompakt, signert tekstformat for å utveksle påstander mellom parter, typisk brukt for autentisering og autorisering i moderne web-API-er. En JWT består av tre deler adskilt av punktum: header, payload og signatur. Dette verktøyet dekoder JWT-er slik at du kan se hva som ligger i header og payload, sjekker gyldigheten av signaturen mot en hemmelighet eller offentlig nøkkel, og hjelper deg å forstå felt som `exp`, `iss`, `aud` og `sub`. Alt kjører lokalt, tokenet ditt blir aldri sendt til noen server, som er avgjørende når du feilsøker med ekte access tokens.
Slik bruker du det
- Lim inn en JWT (tre base64url-strenger separert med punktum) i tekstfeltet.
- Header og payload dekodes automatisk og vises som formatert JSON.
- Sjekk `exp` (utløp) og `iat` (utstedt), verktøyet konverterer Unix-timestamps til lesbar dato.
- Valgfritt: lim inn din hemmelighet (HS256) eller offentlige nøkkel (RS256/ES256) for å verifisere signaturen.
Eksempler
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiT2xhIn0.5xB4pk9L-...{ "sub": "user-42", "iss": "https://auth.example.com", "aud": "api.example.com", "exp": 1735689600, "iat": 1735686000 }Vanlige bruksområder
- Feilsøke API-kall som feiler med 401/403 ved å inspisere selve tokenet.
- Verifisere at klienten din setter riktig `aud` og `iss` i tokens den sender.
- Sjekke om et token er utløpt uten å måtte forsøke API-kallet.
- Se hvilke roller/scopes en bruker faktisk har basert på claims.
- Verifisere signaturen fra en identitetsleverandør (Auth0, Okta, Azure AD, Google) mot deres JWKS.
- Undervise nye utviklere om hvordan JWT er strukturert.
Ofte stilte spørsmål
- Er payload-en kryptert?
- Nei. En signert JWT er bare base64url-kodet, ikke kryptert. Alle med tokenet kan lese hva som står i header og payload. Ikke legg sensitive data (passord, personnummer, kredittkort) i en JWT.
- Hva er forskjellen på HS256 og RS256?
- HS256 er symmetrisk (HMAC-SHA-256), samme hemmelige nøkkel signerer og verifiserer. RS256 er asymmetrisk (RSA + SHA-256), privatnøkkelen signerer, offentlig nøkkel verifiserer. RS256 (eller ES256) foretrekkes i systemer der signereren og verifiserer ikke skal dele hemmeligheter.
- Sender verktøyet tokenet mitt til noen?
- Nei. Alt skjer i nettleseren med SubtleCrypto, hverken tokenet eller nøkkelen din forlater siden. Trygt å bruke på ekte produksjonstokens.
- Hva betyr «alg: none»?
- «none» betyr at tokenet ikke er signert. Dette er en kjent JWT-svakhet, servere som blindt aksepterer `alg: none` kan lures til å godta hva som helst. Verifiseringsbiblioteket ditt bør alltid ha en tillatt algoritme-liste.
Teknisk bakgrunn
JWT er definert i RFC 7519, med underliggende signaturformater i JWS (RFC 7515) og valgfri kryptering i JWE (RFC 7516). Vanlige algoritmer er HS256/384/512 (HMAC), RS256/384/512 (RSA-PKCS1), ES256/384/512 (ECDSA) og PS256/384/512 (RSA-PSS). Signaturen dekkes over `header.payload` etter base64url-koding, og signeres med den valgte algoritmen. Ved verifisering må du sjekke både signaturen OG `exp`, `nbf` og `iss`/`aud`-claims, ellers kan et gyldig signert token fortsatt være falskt eller utløpt.