JSON Web Tokens uppbyggnad och struktur
En JSON Web Token (JWT) är en kompakt och självförsörjande metod för att säkert överföra information mellan parter som ett JSON-objekt. En standardiserad JWT består av tre distinkta delar som separeras av punkter (.):
- Header (Huvud): Innehåller metadata om token, såsom vilken kryptografisk algoritm som används för att signera den.
- Payload (Nyttolast): Innehåller de faktiska data eller anspråk (claims) som överförs, till exempel användaridentitet och behörigheter.
- Signature (Signatur): Skapas genom att kombinera den kodade headern, den kodade payloaden, en hemlig nyckel eller ett publikt/privat nyckelpar, samt den algoritm som anges i headern. Detta säkerställer att meddelandet inte har ändrats under vägen.
Varje del i en JWT är kodad med Base64URL-kodning. Detta format gör att token kan överföras säkert i HTTP-huvuden, URL-parametrar och andra miljöer där specialtecken kan orsaka problem.
Hur JWT-avkodaren fungerar
Detta verktyg låter dig klistra in en JSON Web Token i ett textfält för att omedelbart se dess avkodade header och payload. Verktyget extraherar och visar nyckelinformation från din token, såsom algoritm, typ, utfärdandetid och utgångstid. Det indikerar även tokens giltighetsstatus baserat på dess utgångsanspråk.
Inmatning och validering
För att verktyget ska kunna bearbeta din token måste inmatningen uppfylla följande kriterier:
- Inmatningen måste bestå av exakt tre punktskiljda delar.
- Inmatningen får inte vara för lång.
Om inmatningsfältet är tomt förblir verktyget i statusen "Klar. Klistra in en JWT för att avkoda den.". Om du rensar fältet återgår fokus automatiskt till inmatningsfältet.
Felhantering och felmeddelanden
Om den angivna strängen inte uppfyller kraven för en giltig JWT döljs de avkodade områdena och verktyget visar något av följande felmeddelanden:
- Inte en giltig JWT – förväntade sig tre punktskiljda delar: Visas om inmatningen saknar rätt antal punkter.
- Kunde inte avkoda headern – ogiltig Base64URL: Visas om tokens första del inte kan avkodas på grund av felaktig Base64URL-kodning.
- Kunde inte avkoda payloaden – ogiltig Base64URL: Visas om tokens andra del inte kan avkodas på grund av felaktig Base64URL-kodning.
- Headern är inte giltig JSON: Visas om den avkodade headern inte innehåller ett giltigt JSON-objekt.
- Payloaden är inte giltig JSON: Visas om den avkodade payloaden inte innehåller ett giltigt JSON-objekt.
- Det där är för långt för att vara en riktig JWT: Visas om inmatningen överskrider den maximalt tillåtna längden.
Verktygets utdata och metadata
När en giltig token matas in visar verktyget statusen "Token avkodad." och presenterar följande information:
- Header: Den avkodade headern formaterad som JSON.
- Payload: Den avkodade payloaden formaterad som JSON.
- Algoritm: Den kryptografiska algoritm som anges i headern (till exempel HS256 eller RS256).
- Typ: Typen av token (oftast JWT).
- Utfärdad: Tidpunkten då token utfärdades, baserat på anspråket
iat. - Upphör: Tidpunkten då token upphör att gälla, baserat på anspråket
exp. - Tecken: Det totala antalet tecken i den inmatade JWT-strängen.
Statusindikering för giltighetstid
Verktyget läser av tokens tidsstämplar och visar en av följande statusbrickor:
- Giltig: Token har inte passerat sitt utgångsdatum.
- Utgången: Token har passerat sitt utgångsdatum.
- Änu inte giltig: Tokens starttid (baserat på
nbf- elleriat-anspråk) ligger i framtiden. - Inget utgångsdatum: Token saknar ett
exp-anspråk.
Observera: Detta kontrollerar endast exp-anspråket — det verifierar inte signaturen, utfärdaren eller mottagaren.
Skillnaden mellan avkodning och verifiering
Det är kritiskt att förstå skillnaden mellan att avkoda en JWT och att verifiera den.
- Avkodning: Detta är en rent mekanisk process där Base64URL-strängarna översätts tillbaka till läsbar JSON-text. Vem som helst som har tillgång till en JWT kan avkoda den utan att känna till någon hemlighet. Detta verktyg utför endast avkodning. Det verifierar inte signaturen och efterfrågar aldrig någon signeringshemlighet eller publik nyckel.
- Verifiering: Detta är den process där mottagaren av en JWT använder en kryptografisk nyckel (en delad hemlighet för symmetriska algoritmer som HMAC, eller en publik nyckel för asymmetriska algoritmer som RSA) för att kontrollera att signaturen är giltig. Verifieringen säkerställer att token faktiskt har utfärdats av en betrodd part och att dess innehåll inte har manipulerats efter utfärdandet.
Att förlita sig på data i en avkodad JWT utan att verifiera dess signatur innebär en stor säkerhetsrisk, eftersom vem som helst kan generera en ogiltig token med valfritt innehåll och en matchande osignerad struktur.
Integritet och databehandling
När du arbetar med känsliga tokens är säkerheten avgörande. Din token avkodas lokalt i din webbläsare. Ingenting laddas upp till BroBroGo. All bearbetning sker direkt i klienten, vilket innebär att känsliga uppgifter eller autentiseringsdata i din payload aldrig lämnar din dator.
Vanliga frågor
Är det säkert att klistra in min JWT här?
Ja. Avkodningen sker helt i din webbläsare – din token skickas aldrig till BroBroGo.
Verifierar detta signaturen?
Nej. Verktyget avkodar bara headern och payloaden så att du kan läsa dem. För att verifiera en signatur krävs en hemlighet eller offentlig nyckel, vilket det här verktyget aldrig efterfrågar.
Hur vet jag om min token har gått ut?
Avkodaren läser exp-fältet (claim) och visar en statusbricka – giltig, utgången, ännu inte giltig eller inget utgångsdatum – bredvid den avkodade token.
Varför får jag felmeddelandet om ogiltig Base64URL?
Detta beror på att någon av delarna i din inklistrade JWT innehåller tecken som inte följer Base64URL-standarden, eller att strängen har blivit trunkerad eller skadad vid kopieringen.