Hvad dette JWT decoder gør
Et JWT (JSON Web Token) består af tre Base64URL-kodede dele adskilt af punktummer: header, payload og signatur. Denne danske udgave af JWT decoder lader dig parse jwt-tokens direkte i browseren og se alle standard claims — iss, sub, aud, exp, iat, nbf og jti — formateret og læsbart. Værktøjet fremhæver desuden udløbsstatus, så du med det samme kan spotte et udløbet token under debug af OAuth-flows. 100 % klient-side — dine data forlader aldrig din browser. Ingen upload, ingen sporing, ingen serverlogfiler. Fordi dekodning af Base64URL er en ren matematisk operation, behøver intet sendes til en server. Vigtigt: at decode jwt er ikke det samme som at verificere det. Signaturverifikation kræver din hemmelige eller offentlige nøgle, og den bør du aldrig indtaste i et tredjeparts-værktøj. Læs mere om kryptografiske primitiver i MDN — Web Crypto API.
Funktioner
- Øjeblikkelig token-dekodning. Indsæt et raw JWT eller et Bearer-token — præfikset fjernes automatisk, og header samt payload vises formateret med det samme.
- Claims-fremhævning. Standardclaims som exp, iat, nbf, iss, sub, aud og jti identificeres automatisk og vises med forklarende etiketter, så du slipper for at slå dem op.
- Udløbsstatus i realtid. Toolet sammenligner exp-claimet med browserens aktuelle tid og markerer tokenet som udløbet eller gyldigt — nyttigt ved fejlsøgning af time-skew-problemer.
- Algoritme-advarsel. Hvis header-feltet alg er sat til none, advarer toolet dig eksplicit — det er en velkendt sikkerhedsfejl beskrevet af OWASP og andre autoriteter.
- Kopiér enkelt felt. Kopiér header, payload eller signatur individuelt med ét klik — praktisk når du skal indsætte payload i et testscript.
- Ingen afhængigheder, ingen netværk. Hele dekodningen sker via ren JavaScript i din browser. SHA-256 og Base64URL er veldefinerede operationer — ingen tredjeparts-biblioteker, ingen bagdøre.
Sådan bruger du JWT decoder
Indsæt dit token, og resultatet vises med det samme. Du kan også dekodé programmatisk i din egen kode.
- Indsæt tokenet. Kopiér dit JWT fra en HTTP-header, et curl-svar eller en auth-log, og indsæt det i feltet. Bearer-præfikset håndteres automatisk.
- Inspicér header og payload. Header viser algoritmen (f.eks. HS256 eller RS256) og tokentypen. Payload indeholder dine claims — tjek iss og aud for mismatch-fejl.
- Tjek udløbsstatus. Exp-claimet oversættes til en læsbar dato/tid. Er tokenet udløbet, markeres det tydeligt — nyttigt til at spotte udløbte access tokens i OAuth-flows.
- Dekodé i terminal eller kode. Vil du parse jwt i bash:
echo $token | cut -d. -f2 | base64 -d | jq .— eller i JavaScript:JSON.parse(atob(token.split('.')[1])). I Python:jwt.decode(token, options={'verify_signature': False}). - Kopiér det ønskede felt. Brug kopiér-knappen ved siden af hvert felt til hurtigt at hente payload til videre brug i Postman, et testscript eller en bug-rapport.
Typiske anvendelser
- Debug af OAuth-fejl. Når en API svarer med 401, kan du decode jwt-tokenet og straks se om exp er overskredet, om aud ikke matcher ressourceserveren, eller om iss peger på den forkerte tenant.
- Inspektion af access tokens fra identity-providers. Auth0, Azure AD, Keycloak og AWS Cognito udsteder alle JWT access tokens. Dekodning giver dig hurtigt overblik over custom claims og roller uden at åbne provider-dashboardet.
- Forberedelse af integrationstests. Inden du skriver automatiserede tests mod en OAuth-beskyttet API, kan du parse jwt-tokenet og bekræfte at claims-strukturen matcher det din kode forventer.
- Uddannelse og onboarding. Nye udviklere forstår JWT-strukturen bedst ved at se et rigtigt token skilt ad. Brug toolet til at vise forskellen på header, payload og signatur under code review eller pair programming.
- Hurtig bearer-token-inspektion. Decode bearer token direkte fra en curl-kommando eller Postman-log for at bekræfte tokenets indhold, inden du eskalerer en supporthenvendelse.
Ofte stillede spørgsmål
Er det sikkert at indsætte mit token her?
Ja — dekodningen sker udelukkende i din browser. Ingen data sendes til en server, og siden logger ingenting. Det er netop derfor at client-side decode er den anbefalede metode til at inspicere tokens der kan indeholde persondata: du behøver ikke stole på en tredjepart.
Hvad er forskellen på at dekodé og verificere et JWT?
At decode jwt betyder at Base64URL-dekodé header og payload — det kræver ingen nøgle. Verifikation derimod kontrollerer signaturen og kræver enten den hemmelige nøgle (HMAC) eller den offentlige nøgle (RSA/ECDSA). Brug aldrig dekodede claims til adgangskontrol uden forudgående signaturverifikation.
Hvad betyder alg=none i headeren?
Algoritmefeltet none betyder at tokenet ikke er signeret. Mange tidlige JWT-biblioteker accepterede dette ukritisk, hvilket åbnede for at angribere kunne forfalske tokens. Det er et velkendt angrebsmønster — dette tool advarer dig eksplicit hvis det opdager alg=none.
Kan jeg decode et krypteret JWT (JWE)?
Nej — et JWE-token er krypteret, ikke blot kodet. Base64URL-dekodning giver dig kun den krypterede ciphertext, ikke den klartekst payload. Til JWE skal du bruge en nøgle og et bibliotek der understøtter JSON Web Encryption.
Hvorfor viser exp-claimet et forkert tidspunkt?
JWT-tidsstempler er Unix-epoch i sekunder (ikke millisekunder som MDN — Date bruger i JavaScript). Hvis du sammenligner manuelt, så husk at dividere Date.now() med 1000. Time-skew på tværs af servere kan desuden gøre at et gyldigt token afvises — typisk accepteres ±5 sekunders afvigelse.
Understøtter toolet alle JWT-algoritmer?
Dekodning af header og payload er algoritme-uafhængig — det er ren Base64URL. Toolet viser hvilken algoritme der er angivet (HS256, RS256, ES256 m.fl.), men verificerer ikke signaturen uanset algoritme. Det er et bevidst valg: signaturverifikation kræver en nøgle du ikke bør dele med tredjeparts-tjenester.