tigtools

JWT-dekoder

Indsæt et JWT for at læse header og claims og se, hvornår det udløber. Afkodningen foregår i din browser og verificerer ikke signaturen.

Kører i din browser Ingen tilmelding

Afkodning er ikke verifikation: Alle kan oprette et token med vilkårligt indhold. Dette værktøj kontrollerer ikke signaturen. Det kører kun i din browser, men du bør stadig undgå at indsætte aktive produktionstokens på nogen hjemmeside.

Sådan bruger du det

  1. Kopier et token fra en Authorization-header, en cookie eller din browsers udviklerværktøjer. Et indledende “Bearer ” fjernes automatisk.
  2. Indsæt det i feltet. Headeren og payloaden vises som formateret JSON.
  3. Tjek statuslinjen og claimstabellen for udsteder, audience og udløbstidspunkter i din lokale tid.
  4. Kopier header- eller payload-JSON'en, hvis du har brug for den et andet sted.

Sådan fungerer det

En JSON Web Token (JWT, RFC 7519) i sin almindelige signerede form (JWS) består af tre base64url-kodede dele adskilt af punktummer. Headeren angiver, hvilken algoritme der har signeret tokenet, for eksempel HS256 (HMAC med SHA-256) eller RS256 (RSA). Payloaden indeholder claims: udsagn om brugeren og selve tokenet. Signaturen gør det muligt for serveren at kontrollere, at header og payload ikke er blevet ændret.

Header og payload er kun kodet, ikke krypteret. Alle, der har et token, kan læse indholdet, hvilket er præcis, hvad dette værktøj gør. Læg ikke hemmeligheder i JWT-payloads.

Dekodning beviser ikke noget om et token. Uden udstederens nøgle kan ingen afgøre, om signaturen er ægte, så resultatet her må aldrig bruges til at beslutte, om man skal stole på et token. Verifikation hører til på din server med et vedligeholdt JWT-bibliotek, der kontrollerer signaturen, algoritmen, exp, nbf, iss og aud.

De registrerede claims er forklaret i tabellen. exp, nbf og iat er NumericDate-værdier: sekunder siden 1. januar 1970 UTC. Værktøjet konverterer dem til datoer i din tidszone og sammenligner dem med din enheds ur uden den lille margen, servere ofte tillader ved urforskelle. Hvis dit ur er forkert, vil status også være forkert.

Tokens med fem dele er krypterede JWT'er (JWE). Deres payload kan ikke dekodes uden nøglen, så værktøjet viser kun formatet.

Eksempler

Hvorfor returnerer mit API 401?

Dekod det adgangstoken, som din app sender. Hvis statuslinjen siger "Udløbet den …", skal klienten forny tokenet. Hvis aud viser https://api.example.com, men du kalder https://api2.example.com, stemmer modtageren ikke overens.

Kontrol af et OpenID Connect ID-token

Et ID-token fra en loginudbyder indeholder iss (udbyderen), sub (det stabile bruger-id), aud (dit klient-id), iat og exp samt profilclaims som e-mail og navn. Ved at afkode det kan du se, hvilke claims din app faktisk modtager.

Aflæsning af et tidsstempel-claim

En payload indeholder "exp": 1735689600. Claimstabellen viser det som 1. januar 2025, 00:00:00 UTC, omregnet til din lokale tid, sammen med hvor længe siden eller hvor langt ude i fremtiden det er.

Ofte stillede spørgsmål

Verificerer dette værktøj JWT-signaturen?

Nej. Værktøjet afkoder kun headeren og payloaden. Verificering kræver hemmeligheden (for HS256) eller udstederens offentlige nøgle (for RS256 og ES256) og bør foretages på din server med et betroet bibliotek.

Er det sikkert at indsætte mit token her?

Tokenet afkodes i din browser og sendes ingen steder hen. Alligevel virker et gyldigt token som en adgangskode, indtil det udløber, så foretræk udløbne tokens eller test-tokens, og indsæt aldrig produktions-tokens i værktøjer, du ikke har tillid til.

Hvorfor kan alle læse payloaden?

Signerede JWT'er kodes med base64url, hvilket ikke er kryptering. Signaturen beskytter tokenet mod ændringer, ikke mod aflæsning. Hvis indholdet skal være hemmeligt, skal du bruge en krypteret JWT (JWE) eller opbevare dataene på serveren.

Hvad betyder “exp”, og hvilken enhed er det i?

exp er udløbstidspunktet som en NumericDate: hele sekunder (ikke millisekunder) siden 1970-01-01 00:00:00 UTC. Et token skal afvises på eller efter det tidspunkt.

Hvorfor får jeg “ikke gyldig base64url”?

Tokenet blev sandsynligvis afkortet eller ændret under kopiering, f.eks. ved at de sidste tegn mangler, der er anførselstegn omkring det, eller URL-kodning (%2E i stedet for et punktum). Indsæt det rå token præcis som det blev udstedt.

Privatliv

Tokenet afkodes med JavaScript i din browser. Det sendes ikke til nogen server, gemmes ikke og indgår ikke i analyser. Der foretages ingen signaturverifikation eller nøgleopslag, så der sendes ingen netværksanmodning.