Cosa fa questo strumento
Questo decodificatore JWT divide un JSON Web Token nelle sue tre parti — header, payload e firma — e ti mostra il contenuto decodificato insieme ai claim registrati (iss, sub, aud, exp, iat, nbf, jti). La finestra di validità è calcolata da exp e nbf perché tu veda a colpo d'occhio se un token è nei tempi.
Offre anche la verifica della firma per gli algoritmi che le API usano davvero: HS256/384/512 con un segreto condiviso, RS256/384/512 e PS256/384/512 con una chiave pubblica RSA, ES256/384/512 con una chiave pubblica EC, ed EdDSA con una chiave Ed25519. Le chiavi pubbliche possono essere incollate come JWK, come JWKS completo (TaskKit sceglie la chiave giusta facendo corrispondere il kid del token), come blocco PEM SPKI, come chiave pubblica RSA PEM PKCS#1, come certificato X.509 (la chiave pubblica viene estratta automaticamente) o — per EdDSA — come 64 caratteri hex o 43 caratteri base64url. Se l'header del token contiene un array x5c (una catena di certificati X.509 inline), il certificato leaf viene usato automaticamente quando il campo chiave è vuoto.
Quando usarlo
- Ispezionare un token restituito dal tuo server di autenticazione durante lo sviluppo locale.
- Confermare che i claim di un token di terze parti corrispondano a ciò che il tuo client si aspettava.
- Verificare che un token rinnovato sia firmato con la stessa chiave di prima.
- Verificare la scadenza quando qualcosa ha smesso di funzionare esattamente a mezzanotte UTC.
Come funziona
La decodifica è solo Base64URL — la spec JWT usa Base64 URL-safe senza padding. Header e payload sono JSON; la firma è in byte grezzi. La verifica usa crypto.subtle.verify, l'API WebCrypto integrata nel browser, con l'algoritmo letto dall'header. EdDSA passa per @noble/ed25519 (anche solo nel browser) perché il supporto WebCrypto per Ed25519 è ancora irregolare tra i browser.
L'input della chiave è permissivo sul formato. Le chiavi simmetriche (HS*) vengono importate come byte grezzi o come JWK. Le chiavi asimmetriche (RS/PS/ES) sono accettate come JWK, JWKS (il kid del token sceglie la chiave giusta — i set con una sola chiave vengono usati direttamente), PEM SPKI (BEGIN PUBLIC KEY), chiave pubblica RSA PEM PKCS#1 (BEGIN RSA PUBLIC KEY) o certificato X.509 (BEGIN CERTIFICATE) — TaskKit attraversa il certificato con un piccolo lettore ASN.1 interno per estrarre il SubjectPublicKeyInfo embedded. Le chiavi EdDSA possono essere un JWK, un JWKS, un SPKI PEM, 64 caratteri hex o 43 caratteri base64url.
Niente in questo strumento è lato server. Il token non lascia mai il tuo browser, la chiave non lascia mai il tuo browser, e non c'è telemetria su nessuno dei due. Se incolli un token di produzione per fare debug, il tuo auditor non vedrà una richiesta a taskkit.net che trasporta quel token.
Note
Perché "alg: none" viene rifiutato anche quando il token valida? Perché nessun JWT del mondo reale dovrebbe mai usare alg: none. È un vettore d'attacco noto: se il tuo verificatore accetta none, un attaccante può rimuovere la firma e falsificare qualsiasi payload. Lo segnaliamo come errore invece di accettarlo silenziosamente.
Posso verificare un token Microsoft / Google / Auth0? Sì — recupera il JWKS dell'emittente (per esempio https://login.microsoftonline.com/common/discovery/v2.0/keys) e incolla l'intero documento JSON nel campo chiave. TaskKit legge l'header kid del token e sceglie automaticamente il JWK corrispondente; nessuna ricerca manuale necessaria.
HS256 vs RS256 — quale dovrei usare? RS256 (o ES256) per qualsiasi cosa che una parte esterna verificherà, dato che le serve solo la chiave pubblica. HS256 va bene per service-to-service quando entrambi i lati possiedono lo stesso segreto.
Il mio token ha un header x5c — significa che mi sto fidando del certificato embedded? TaskKit userà il certificato leaf di x5c per verificare la firma quando non incolli una chiave, in modo che tu possa confermare che il contenuto del token non è stato manomesso. Non valida la catena fino a una CA — questo richiede radici di fiducia ed è fuori dal perimetro qui. Il chip di risultato mostra « verificato con il certificato x5c dell'header del token (catena non validata) » perché tu non lo confonda con un verdetto di fiducia end-to-end.
Strumenti correlati
- Encoder/decoder Base64 — per la codifica sottostante
- Generatore di hash — quando ti serve un digest, non un token
- Convertitore timestamp — per leggere
expeiatcome date leggibili - Encoder JWT — firma i tuoi token in locale
- Come TaskKit si confronta con jwt.io — matrice di funzionalità, richieste di rete misurate, garanzie di sicurezza runtime