Il mio JWT viene inviato a un server?+−
No. La decodifica avviene interamente nel tuo browser usando le Web API atob e TextDecoder - il token, così come qualsiasi segreto o chiave pubblica che incolli per verificare una firma, non lasciano mai il tuo dispositivo.
Questo strumento può verificare la firma?+−
Sì, come bonus a tentativo. Se conosci il segreto HMAC (per HS256/384/512) o incolli la chiave pubblica codificata in PEM (per RS256/384/512 o ES256/384/512), lo strumento controlla la firma localmente usando la Web Crypto API del browser. Senza una chiave, vengono decodificati e mostrati solo header e payload - la decodifica non richiede mai la chiave di firma.
Perché l'algoritmo indicato è "none"?+−
"alg": "none" significa che il token non è firmato affatto - chiunque avrebbe potuto scriverci dentro qualsiasi claim. Alcune librerie in passato hanno accettato questi token non firmati come validi, diventando un noto modo per aggirare l'autenticazione. Questo strumento lo segnala sempre in modo evidente, così non te lo perdi.
Cosa significano exp, iat e nbf?+−
Sono i claim di timestamp standard di RFC 7519: iat indica quando il token è stato emesso, nbf il primo momento in cui diventa valido, ed exp quando smette di esserlo. Tutti e tre sono memorizzati come NumericDate - secondi dall'epoch Unix - che questo strumento converte in una data leggibile e in un tempo relativo come "scade tra 2 ore".
Perché posso leggere il payload senza un segreto?+−
Perché header e payload di un JWT sono solo codificati in base64url, non cifrati - la codifica non è segretezza. Chiunque abbia il token può già leggerne i claim; la firma dimostra solo che non sono stati alterati da qualcuno privo della chiave. Non inserire mai nel payload di un JWT qualcosa che non vuoi che un attaccante possa leggere direttamente.
Il mio token ha 3 parti ma non si decodifica comunque - perché?+−
Ciascuno dei tre segmenti (header, payload, firma) deve essere testo base64url valido, ed header e payload devono decodificarsi in JSON valido. Questo strumento decodifica header e payload in modo indipendente e ti dice esattamente quale dei due è rotto e perché (base64 errato, UTF-8 errato o JSON non valido), invece di fallire silenziosamente.