JWT-avkodare
Klistra in en token, så visas innehållet och när den går ut. Har du nyckeln kan du också kontrollera signaturen.
Avkodningen sker i din webbläsare. Inget skickas.
Giltighet
…
Avkodad men inte verifierad: vem som helst kan skapa en token med det här innehållet. Ange nyckeln nedan för att kontrollera signaturen.
Header
{
"alg": "HS256",
"typ": "JWT"
}Payload
{
"iss": "https://example.com",
"sub": "1234567890",
"aud": "quaestio",
"name": "Ada Lovelace",
"iat": 1757000000,
"nbf": 1757000000,
"exp": 4102444800,
"jti": "4f1c2a9e"
}Fält och claims
- algalgoritm för signaturen
- HS256
- typtyp av token
- JWT
- issutfärdare
- https://example.com
- subsubjekt, oftast användarens id
- 1234567890
- audmottagare som token är avsedd för
- quaestio
- exputgångstid
- 4102444800
- nbfinte giltig före
- 1757000000
- iatutfärdad
- 1757000000
- jtiunikt id för token
- 4f1c2a9e
- Signatur
- 32 byte
Kontrollera signaturen
Nyckeln används bara i din webbläsare och sparas inte.
Så fungerar det
En JSON Web Token (JWT, RFC 7519) består av tre delar åtskilda av punkter: header, payload och signatur. Header och payload är JSON som kodats med base64url, en variant av base64 med - och _ i stället för + och / och utan utfyllnad. Vem som helst kan alltså läsa innehållet; det är inte krypterat.
Headern anger bl.a. algoritmen (alg) och ofta typen (typ) och nyckelns id (kid). Payloaden innehåller claims, uppgifter om användaren eller sessionen. Standarden registrerar sju: iss (utfärdare), sub (subjekt), aud (mottagare), exp (utgångstid), nbf (inte giltig före), iat (utfärdad) och jti (id för token). Övriga fält väljer utfärdaren själv.
Tiderna i exp, nbf och iat anges som sekunder sedan 1 januari 1970 i UTC. En token ska inte godtas vid eller efter tiden i exp, och inte före tiden i nbf. Verktyget jämför med klockan i din enhet, så en felställd klocka ger fel status.
Avkodning är inte verifiering. Signaturen visar att token har utfärdats av någon som har nyckeln och att innehållet inte har ändrats, men det går bara att kontrollera med nyckeln. HS256, HS384 och HS512 använder en gemensam hemlighet (HMAC). RS och PS använder RSA, ES använder elliptiska kurvor (ECDSA med P-256, P-384 eller P-521) och EdDSA Ed25519; de kontrolleras med den publika nyckeln som PEM eller JWK, som utfärdaren ofta publicerar som ett JWK Set.
En token med alg none saknar signatur och ska aldrig godtas av en server. Flera kända sårbarheter har handlat om bibliotek som godtog none, eller som lät en angripare byta RS256 mot HS256 och signera med den publika nyckeln som hemlighet.
En token fungerar ofta som nyckel till ett konto. Här sker allt i webbläsaren med dess inbyggda kryptografi (WebCrypto), och varken token, hemlighet eller nyckel skickas någonstans. Klistra ändå aldrig in en giltig token eller hemlighet på en sida du inte litar på, och aldrig en privat nyckel: kontrollen behöver bara den publika.