JWT Decoder
Avkoda och inspektera JSON Web Tokens
JWT-token
Vad är en JWT (JSON Web Token)?
En JSON Web Token (JWT) är ett kompakt, URL-säkert tokenformat definierat i RFC 7519. Det kodar en uppsättning claims som ett JSON-objekt och signerar det sedan — och krypterar det valfritt — så att mottagaren kan verifiera att data inte har manipulerats. JWT är de facto-standard för tillståndslös autentisering i REST API:er, single sign-on-system och mikroservicebehörighet.
JWT-anatomi: Header · Payload · Signature
Varje JWT består av tre base64url-kodade segment separerade av punkter. Header och Payload är vanlig JSON — läsbar av vem som helst — medan Signature är ett kryptografiskt värde som bara kan verifieras med rätt nyckel.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwibmFtZSI6IkFsaWNlIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNzE3MjAwMDAwLCJleHAiOjE3MTcyMDM2MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
"alg": "HS256",
"typ": "JWT"
}{
"sub": "user123",
"name": "Alice",
"role": "admin",
"iat": 1717200000,
"exp": 1717203600
}Varför använda en JWT-avkodare?
Råa JWT ser ut som slumpmässig text. Det här verktyget renderar omedelbart Header och Payload som formaterad JSON så att du kan inspektera claims, kontrollera utgångstider och granska algoritmval utan att skriva en enda rad kod.
Referens för standard-JWT-claims
RFC 7519 definierar sju registrerade claimnamn. Dessa är inte obligatoriska, men deras användning rekommenderas starkt för interoperabilitet. Du kan lägga till anpassade claims i Payload.
| Claim | Beskrivning | Typ |
|---|---|---|
| iss | Utfärdare — Identifierar vem som utfärdade token — t.ex. URL:en för din autentiseringsserver eller applikationsnamnet. | string |
| sub | Ämne — Identifierar det subjekt som JWT handlar om — vanligtvis ett användar-ID eller tjänstkonto. | string |
| aud | Målgrupp — Identifierar de avsedda mottagarna. Den mottagande parten måste verifiera att detta matchar deras identifierare. | string | string[] |
| exp | Utgångstid — Unix-tidsstämpel efter vilken token inte får accepteras. Ange alltid detta för att begränsa skadan från ett stulet token. | number |
| nbf | Inte före — Unix-tidsstämpel innan vilken token inte får accepteras. Användbart för att schemalägga framtidsdaterade token. | number |
| iat | Utfärdat vid — Unix-tidsstämpel då token utfärdades. Används för att beräkna tokens ålder. | number |
| jti | JWT ID — En unik identifierare för token. Möjliggör återkallande genom att lagra och kontrollera använda JTI-värden på serversidan. | string |
JWT-signeringsalgoritmer
Header-claimen alg deklarerar vilken algoritm som signerade token. Valet påverkar säkerhet, prestanda och om tredjepartstjänster kan verifiera token utan den privata nyckeln.
| Algoritm | Familj | Nyckeltyp | Anteckningar |
|---|---|---|---|
| HS256 | HMAC | Symmetric | Vanligast. Delad hemlighet — vem som helst med hemligheten kan signera och verifiera. |
| HS384 | HMAC | Symmetric | Starkare HMAC-variant; måttlig prestandakostnad. |
| HS512 | HMAC | Symmetric | Starkaste HMAC-varianten. |
| RS256 | RSA | Asymmetric | Den mest använda asymmetriska algoritmen (Google, Auth0, Okta). Offentlig nyckel verifierar utan privat nyckel. |
| RS384 | RSA | Asymmetric | RS-variant med högre säkerhet. |
| RS512 | RSA | Asymmetric | Starkaste RS-varianten. |
| ES256 | ECDSA | Asymmetric | Elliptisk kurva — kortare signaturer än RSA, populär på mobil och IoT. |
| PS256 | RSA-PSS | Asymmetric | RSA-PSS: modernare och säkrare än PKCS1v1.5-baserade RS256. |
| none | — | — | Ingen signatur — kritiskt farligt. Acceptera aldrig token med alg: none i produktion. |
Säkerhetsöverväganden
Att avkoda en JWT är alltid säkert. Att lita på en JWT utan korrekt signaturverifiering är det inte. Ha dessa regler i åtanke när du använder token i din applikation.
- –Avkoda och inspektera en JWT i utvecklarverktyg eller det här verktyget
- –Använd exp, iat och nbf för att förstå tokens livstid
- –Logga Payload-claims för felsökning (uteslut känslig personlig information)
- –Läs alg-headern för att förstå hur token signerades
- –Lita på claims i Payload utan att verifiera signaturen på serversidan
- –Acceptera token med alg: none — det betyder ingen signatur alls
- –Lagra åtkomsttoken i localStorage i säkerhetskritiska applikationer (föredra httpOnly-cookies)
- –Ange exp långt in i framtiden för token som bär känsliga behörigheter
Vanliga användningsfall
Avkoda JWT i kod
Header och Payload är base64url-kodade — vänd bara på kodningen. Base64url ersätter + med - och / med _, och utelämnar = som utfyllnad. Bara Signature kräver den hemliga nyckeln.
function decodeJWT(token) {
const [, payload] = token.split('.')
const json = atob(payload.replace(/-/g, '+').replace(/_/g, '/'))
return JSON.parse(json)
}const [, payload] = token.split('.')
const decoded = JSON.parse(
Buffer.from(payload, 'base64url').toString()
)import base64, json
def decode_jwt(token):
payload = token.split('.')[1]
padding = '=' * (-len(payload) % 4)
return json.loads(base64.urlsafe_b64decode(payload + padding))TOKEN="eyJhbGc..." echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | jq .