tigtools

JWT-dekoder

Lim inn en JWT for å lese header og claims og se når den utløper. Dekoding skjer i nettleseren din og verifiserer ikke signaturen.

Kjører i nettleseren din Ingen registrering

Dekoding er ikke verifisering: hvem som helst kan opprette et token med hvilket som helst innhold. Dette verktøyet sjekker ikke signaturen. Det kjører kun i nettleseren din, men du bør likevel unngå å lime inn aktive produksjonstokens på noe nettsted.

Slik bruker du det

  1. Kopier et token fra en Authorization-header, en informasjonskapsel eller nettleserens utviklerverktøy. En innledende «Bearer » fjernes automatisk.
  2. Lim det inn i feltet. Header og payload vises som formatert JSON.
  3. Sjekk statuslinjen og claims-tabellen for utsteder, audience og utløpsdatoer i din lokale tid.
  4. Kopier header- eller payload-JSON-en hvis du trenger den et annet sted.

Slik fungerer det

En JSON Web Token (JWT, RFC 7519) i vanlig signert form (JWS) består av tre base64url-kodede deler atskilt med punktum. Hodet forteller hvilken algoritme som signerte tokenet, for eksempel HS256 (HMAC med SHA-256) eller RS256 (RSA). Nyttelasten inneholder kravene (claims): utsagn om brukeren og selve tokenet. Signaturen lar serveren kontrollere at hodet og nyttelasten ikke er endret.

Hodet og nyttelasten er bare kodet, ikke kryptert. Alle som har et token, kan lese innholdet – det er akkurat det dette verktøyet gjør. Ikke legg hemmeligheter i JWT-nyttelaster.

Dekoding beviser ingenting om et token. Uten utstederens nøkkel kan ingen vite om signaturen er ekte, så resultatet her må aldri brukes til å avgjøre om et token er til å stole på. Verifisering hører hjemme på serveren din, med et vedlikeholdt JWT-bibliotek som sjekker signaturen, algoritmen, exp, nbf, iss og aud.

De registrerte kravene forklares i tabellen. exp, nbf og iat er NumericDate-verdier: sekunder siden 1. januar 1970 UTC. Verktøyet konverterer dem til datoer i tidssonen din og sammenligner dem med enhetens klokke, uten det lille slingringsmonnet som servere ofte tillater for klokkeforskjeller. Hvis klokken din er feil, blir statusen også feil.

Token med fem deler er krypterte JWT-er (JWE). Nyttelasten deres kan ikke dekodes uten nøkkelen, så verktøyet bare rapporterer formatet.

Eksempler

Hvorfor returnerer API-et mitt 401?

Dekod tilgangstokenet appen din sender. Hvis statuslinjen sier «Utløpt den …», må klienten fornye tokenet. Hvis aud viser https://api.example.com, men du kaller https://api2.example.com, stemmer ikke målgruppen.

Sjekke et OpenID Connect ID-token

Et ID-token fra en påloggingsleverandør inneholder iss (leverandøren), sub (den stabile bruker-ID-en), aud (klient-ID-en din), iat og exp, pluss profilclaims som e-post og navn. Dekoding viser hvilke claims appen din faktisk mottar.

Lese et tidsstempel-claim

En payload inneholder "exp": 1735689600. Claims-tabellen viser den som 1. januar 2025, 00:00:00 UTC, konvertert til lokal tid, sammen med hvor lenge siden eller hvor langt frem i tid det er.

Ofte stilte spørsmål

Verifiserer dette verktøyet JWT-signaturen?

Nei. Verktøyet dekoder bare header og payload. Verifisering krever hemmeligheten (for HS256) eller utstederens offentlige nøkkel (for RS256 og ES256) og bør gjøres på serveren din med et pålitelig bibliotek.

Er det trygt å lime inn tokenet mitt her?

Tokenet dekodes i nettleseren din og sendes ikke noe sted. Likevel fungerer et gyldig token som et passord frem til det utløper, så bruk helst utløpte token eller test-token, og aldri lim inn produksjonstoken i verktøy du ikke stoler på.

Hvorfor kan hvem som helst lese payloaden?

Signerte JWT-er kodes med base64url, som ikke er kryptering. Signaturen beskytter tokenet mot endringer, ikke mot lesing. Hvis innholdet må være hemmelig, bruk en kryptert JWT (JWE) eller behold dataene på serveren.

Hva betyr «exp», og hvilken enhet har det?

exp er utløpstidspunktet som NumericDate: hele sekunder (ikke millisekunder) siden 1970-01-01 00:00:00 UTC. Et token må avvises på eller etter det tidspunktet.

Hvorfor får jeg «ikke gyldig base64url»?

Tokenet ble trolig kuttet eller endret under kopiering, for eksempel ved at de siste tegnene manglet, anførselstegn rundt det ble borte, eller URL-koding (%2E i stedet for punktum). Lim inn det rå tokenet nøyaktig slik det ble utstedt.

Personvern

Tokenet dekodes med JavaScript i nettleseren din. Det sendes ikke til noen server, lagres ikke og inkluderes ikke i analyse. Ingen signaturverifisering eller oppslag av nøkler utføres, så det gjøres ingen nettverksforespørsel.