Come si usa
- 1Incolla il token nella casella, con o senza il prefisso «Bearer». L’header e il payload vengono decodificati mentre scrivi.
- 2Controlla la riga di stato: indica se il token è valido, scaduto o non ancora valido, in base ai claim
expenbf. - 3Leggi i claim standard – emittente, soggetto, destinatari e orari – con i timestamp mostrati come date nel tuo fuso orario.
- 4Per verificare la firma, inserisci la chiave segreta condivisa per i token
HS256, oppure incolla la chiave pubblica o il set di JWK perRS256,ES256e gli altri algoritmi a coppia di chiavi.
Cosa c’è dentro un JWT
Un JSON Web Token è formato da tre parti codificate in Base64URL e unite da punti: header.payload.signature. L’header indica come è firmato il token, per esempio {"alg":"HS256","typ":"JWT"}. Il payload contiene i claim, cioè affermazioni sull’utente e sul token, come un ID utente, i ruoli e una scadenza. La firma dimostra che le prime due parti provengono da chi possiede la chiave e non sono state modificate.
Base64URL è una codifica, non una cifratura: chiunque abbia il token può leggerne il payload, esattamente come fa questo strumento. Non inserire mai password o altri segreti in un JWT. Se il contenuto deve restare riservato, l’emittente deve usare un token cifrato (JWE), che ha cinque parti e può essere letto solo con la chiave giusta.
Claim standard e scadenza
Lo standard RFC 7519 definisce sette claim registrati. iss (issuer, emittente) indica chi ha creato il token, sub (subject, soggetto) a chi si riferisce – di solito un ID utente – e aud (audience, destinatari) a quale servizio è destinato. exp (expiration time, scadenza), nbf (not before, non prima di) e iat (issued at, emesso il) sono timestamp in secondi dal 1° gennaio 1970, mentre jti è un ID univoco che permette a un server di accorgersi se un token viene riutilizzato.
Un server deve rifiutare un token dopo il suo orario exp e prima del suo orario nbf. Una durata breve – spesso da 5 a 60 minuti per i token di accesso – limita i danni se un token viene rubato: per questo le app usano i refresh token per ottenerne di nuovi.
Verifica della firma
La decodifica mostra cosa afferma un token; solo la firma ti dice se puoi crederci. HS256, HS384 e HS512 usano una chiave segreta condivisa, nota sia all’emittente sia al server. RS256, PS256, ES256, EdDSA e algoritmi simili usano una coppia di chiavi: l’emittente firma con la sua chiave privata e chiunque può verificare con la chiave pubblica. I provider di identità pubblicano le loro chiavi pubbliche come set di JWK, spesso a un URL che termina con /.well-known/jwks.json.
La verifica avviene localmente con la Web Crypto API del tuo browser e nulla di ciò che incolli viene inviato da nessuna parte. Anche così, tratta con cura le chiavi segrete di produzione – e ricorda che per verificare un token non serve mai una chiave privata, quindi incolla solo chiavi pubbliche.
Domande frequenti
È sicuro incollare qui un JWT?
Sì. Il token viene decodificato e verificato nel tuo browser e non viene mai inviato a nestoo né a nessun altro. Tieni presente che un token di accesso valido funziona come una password temporanea: chiunque lo copi può usarlo finché non scade, quindi non condividere token attivi in chat o nei ticket.
Si può decodificare un JWT senza la chiave segreta?
Sì. L’header e il payload sono solo codificati in Base64URL, quindi chiunque può leggerli senza una chiave. La chiave segreta o la chiave privata servono per creare una firma valida, mentre la chiave segreta o la chiave pubblica servono per verificarla.
Perché il mio token mostra «Firma non valida»?
Di solito la chiave segreta o la chiave pubblica è sbagliata: una chiave di un altro ambiente, una chiave segreta che va prima decodificata dal Base64, oppure una chiave pubblica con un kid diverso. Succede anche quando il token è stato modificato o troncato durante la copia. Per i token di un provider di identità, usa il set di JWK attuale del provider.
Qual è la differenza tra JWS e JWE?
Un JWS è un token firmato composto da tre parti: chiunque può leggerlo, ma nessuno può modificarlo senza invalidare la firma. Un JWE è un token cifrato composto da cinque parti, e solo chi possiede la chiave di decifratura può leggerne il contenuto. La maggior parte dei token che chiamiamo JWT sono JWS.
Cosa significano exp, iat e nbf?
Sono orari espressi in secondi dal 1° gennaio 1970, il cosiddetto tempo Unix. exp indica quando il token scade, iat quando è stato emesso e nbf il momento prima del quale non deve essere accettato. Questo strumento li mostra come date nel tuo fuso orario e ti dice quanto tempo è passato o quanto ne manca.