HMAC con SHA-256. Chiave simmetrica condivisa. Consigliato per l'uso generale.
Come funziona
Un JSON Web Token (JWT) è un token compatto e firmato che trasporta informazioni (claim) tra due parti. È composto da tre parti separate da punti —header, payload e firma—, ciascuna codificata in Base64URL.
In modalità Genera definisci l'header e il payload in JSON e firmi con una chiave segreta (HMAC) o una chiave privata (RSA/ECDSA). In modalità Leggi incolli un token esistente per ispezionarne il contenuto e verificare la firma.
Il payload non è cifrato: chiunque può leggerlo decodificando il Base64URL. La firma garantisce solo che il token non è stato alterato, non lo nasconde. Non mettere mai dati sensibili in un JWT.
Esempi
header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQtokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cLa firma (terza parte) dipende dall'algoritmo e dalla chiave; questo esempio usa HS256 con la chiave "your-256-bit-secret".Casi d'uso
- Autenticare utenti nelle API: il server emette un token firmato e lo valida a ogni richiesta senza salvare la sessione.
- Ispezionare e fare il debug di token di autenticazione per vederne i claim (sub, exp, ruoli) e le date.
- Verificare la firma di un token con la chiave segreta o la chiave pubblica per confermare che non è stato manomesso.
- Generare token di prova con diversi algoritmi (HMAC, RSA, ECDSA) durante lo sviluppo di un flusso di autenticazione.
Domande frequenti
Il contenuto di un JWT è cifrato?
No. L'header e il payload sono solo codificati in Base64URL, che chiunque può decodificare. La firma garantisce l'integrità (che non è stato alterato), non la riservatezza.
Qual è la differenza tra HS256 e RS256?
HS256 usa un'unica chiave segreta condivisa per firmare e verificare (HMAC). RS256 è asimmetrico: si firma con una chiave privata e si verifica con la pubblica, ideale quando molti servizi devono validare senza poter emettere.
Cosa significano i claim iat, exp e nbf?
Sono timestamp standard: iat (emesso il), exp (scade il) e nbf (non valido prima di). Sono espressi in secondi dal 1970 (epoch Unix).
Perché l'algoritmo "none" è sconsigliato?
Perché produce un token senza firma: chiunque può modificare il payload e verrà comunque accettato. Serve solo per i test, mai in produzione.
Il mio token viene inviato a un server?
No. La generazione, la decodifica e la verifica avvengono interamente nel tuo browser; il token e le chiavi non lasciano mai il tuo dispositivo.