> avkoda | inspektera | verifiera <
// Avkoda och inspektera JSON Web Tokens (JWT) direkt
Lokal Bearbetning
100% klientsides JWT-avkodning. Dina tokens lämnar aldrig din webbläsare.
Auto-avkodning
Avkoda JWT-tokens automatiskt vid inklistring eller skrivning.
Fullständig Tokeninspektion
Visa header, payload och signatur. Kontrollera algoritm och utgångsdatum.
// OM JWT-AVKODNING
JWT-struktur:
En JSON Web Token (JWT) består av tre Base64URL-kodade delar separerade med punkter: header.payload.signatur. Headern anger algoritm och tokentyp. Payloaden innehåller anspråk (data). Signaturen verifierar tokenets integritet.
Exempel:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature → {"alg":"HS256"} + {"sub":"1234"}
Vanliga Användningsfall:
- >Felsökning av autentiseringstokens i webbapplikationer
- >Inspektion av OAuth 2.0 och OpenID Connect-tokens
- >Verifiering av tokens utgångsdatum och anspråk
- >Förståelse av JWT-struktur enligt RFC 7519
- >Kontroll av Base64URL-kodningsintegritet
>> vanliga frågor
F: Vad är en JSON Web Token (JWT)?
S: JWT (JSON Web Token) är en öppen standard (RFC 7519) för säker överföring av information mellan parter som ett JSON-objekt. Den är kompakt, URL-säker och används ofta för autentisering.
F: Vilka är de tre delarna av en JWT?
S: En JWT består av tre delar separerade med punkter: Header (algoritm och typ), Payload (anspråk och data) och Signatur (verifieringshash). Varje del är Base64URL-kodad.
F: Kan en JWT avkodas utan den hemliga nyckeln?
S: Ja, headern och payloaden i en JWT kan avkodas av vem som helst eftersom de helt enkelt är Base64URL-kodade (inte krypterade). Den hemliga nyckeln behövs bara för att verifiera signaturen.
F: Vad är skillnaden mellan JWT och sessionsbaserad autentisering?
S: Sessioner lagrar tillstånd på servern med en sessions-ID-cookie. JWT:er är tillståndslösa — tokenet självt innehåller all nödvändig information.
F: Hur fungerar JWT-utgångsdatum?
S: exp-anspråket i JWT-payloaden anger utgångstiden som en Unix-tidsstämpel. Efter denna tid bör tokenet anses ogiltigt.
// Vanliga JWT-signaturalgoritmer
Värdet alg i huvudet anger hur signaturen skapas. HS* använder en delad hemlighet; RS*, PS*, ES* och EdDSA använder nyckelpar.
| alg | Algoritm |
|---|---|
| HS256 | HMAC + SHA-256 |
| HS512 | HMAC + SHA-512 |
| RS256 | RSA PKCS#1 v1.5 + SHA-256 |
| PS256 | RSASSA-PSS + SHA-256 |
| ES256 | ECDSA P-256 + SHA-256 |
| EdDSA | Ed25519 |
// Verifiera JWT i kod
Enbart avkodning verifierar ingenting. Ange alltid uttryckligen tillåtna algoritmer vid verifiering.
Node.js (jsonwebtoken) jwt.verify(token, secret, { algorithms: ['HS256'] })
Python (PyJWT) jwt.decode(token, key, algorithms=["HS256"])
PHP (firebase/php-jwt) JWT::decode($token, new Key($key, 'HS256'))
Go (golang-jwt) jwt.Parse(token, keyFunc, jwt.WithValidMethods([]string{"HS256"}))
Java (jjwt) Jwts.parser().verifyWith(key).build().parseSignedClaims(token)
>> Fler frågor
F: Vad betyder standardclaims iss, sub, aud, exp, nbf, iat och jti?
S: iss är utfärdaren, sub subjektet (oftast användar-id), aud avsedd mottagare, exp utgångstid, nbf giltighetens start, iat utfärdandetid och jti ett unikt token-id. Tider anges i Unix-sekunder.
F: Är en JWT krypterad?
S: En vanlig signerad JWT (JWS) är inte krypterad, bara Base64URL-kodad: vem som helst kan läsa innehållet. Signaturen skyddar bara mot manipulering. Lägg inte känsliga data i den eller använd en krypterad JWE.
F: Hur verifierar jag signaturen i en JWT?
S: Du behöver nyckeln: den delade hemligheten för HS256 eller den publika nyckeln för RS256/ES256. Servern räknar om signaturen för Huvud.Nyttolast och jämför. Den här avkodaren körs i webbläsaren och verifierar inte signaturen åt dig – använd ett beprövat bibliotek.
F: Vilka vanliga säkerhetsmisstag finns med JWT?
S: Vanliga: lita på alg från själva token (särskilt none), svaga HS256-hemligheter, ingen kontroll av exp, iss och aud, känsliga data i nyttolasten och långlivade token i localStorage.