Un encoder JWT sicuro e locale
Questo encoder jwt permette agli sviluppatori di creare, modificare e firmare rapidamente JSON Web Token direttamente nel browser. Che tu stia sviluppando un flusso di autenticazione, testando un endpoint API o facendo il debug di un microservizio, puoi generare token validi al volo senza scrivere script personalizzati o esporre le tue credenziali a server di terze parti.
Poiché lo strumento si basa sulla Web Crypto API nativa del browser, l'elaborazione dei dati e la firma crittografica avvengono interamente sul tuo dispositivo. Il payload JSON e le chiavi segrete non vengono mai caricati, salvati o registrati. Questo approccio local-first rende sicuro firmare JWT online, anche quando si lavora con credenziali di sviluppo o staging sensibili.
Come creare un token JWT
Per creare un token JWT, ti servono tre componenti: un header (che definisce l'algoritmo), un payload (che contiene i tuoi dati) e una chiave segreta (che mette in sicurezza il token).
Inizia selezionando l'algoritmo. Questo strumento funziona come un potente generatore JWT HS256, ma supporta anche HS384 e HS512. Si tratta di algoritmi HMAC simmetrici, il che significa che viene utilizzata la stessa identica chiave segreta sia per firmare il token che per verificarlo in seguito. Più alto è il numero (es. 512), maggiore sarà la dimensione dell'hash risultante, offrendo una maggiore sicurezza crittografica a costo di una stringa del token leggermente più lunga.
Successivamente, definisci il tuo payload nell'area di testo fornita. Il payload deve essere un JSON valido. Mentre modifichi il JSON o aggiorni la chiave segreta, lo strumento ricalcola la firma in tempo reale, fornendo un feedback immediato in caso di errori di sintassi nella struttura del JSON. Una volta impostati il payload e il segreto, il token finale è pronto per essere copiato e utilizzato negli header Authorization o nei cookie della tua applicazione.
Casi d'uso comuni per la generazione di token
Avere a disposizione un generatore JWT affidabile è essenziale per lo sviluppo web moderno. Gli sviluppatori utilizzano spesso questo strumento per vari scenari di test e debug:
Test degli endpoint API: Quando si lavora con client API come Postman o Insomnia, spesso è necessario un bearer token valido per accedere alle rotte protette. Invece di avviare l'intera applicazione frontend per effettuare il login e recuperare un token, puoi generarne uno manualmente qui con l'ID utente e i ruoli esatti di cui hai bisogno.
Debug della logica di autenticazione: Se il backend rifiuta i token, crearne uno manualmente aiuta a isolare il problema. Puoi verificare se l'errore deriva da una secret key errata, da un payload malformato o da un'incongruenza nell'algoritmo di firma.
Creazione di casi limite: Testare come il backend gestisce token scaduti, claim mancanti o ruoli non autorizzati è fondamentale per la sicurezza. Qui puoi manipolare facilmente il payload JSON per creare questi casi limite e assicurarti che il server restituisca i codici di stato HTTP corretti.
Gestione dei timestamp e dei claim
I JSON Web Token utilizzano campi specifici, noti come claim, per trasmettere informazioni sul ciclo di vita del token e sull'utente che rappresenta. I claim temporali più comuni sono iat (Issued At) ed exp (Expiration Time). Entrambi richiedono un timestamp Unix, ovvero il numero di secondi trascorsi dal 1° gennaio 1970.
Calcolare questi timestamp manualmente può essere noioso durante i test. Per velocizzare il tuo flusso di lavoro, questo strumento include pulsanti di azione rapida sopra l'editor del payload.
- Cliccando su iat = now si inserisce o aggiorna istantaneamente il campo
iatcon il timestamp Unix attuale. - Cliccando su exp = +1h o exp = +24h si calcola il timestamp futuro e si aggiorna di conseguenza il campo
exp.
Questo assicura che i token generati siano immediatamente validi e non vengano respinti prematuramente dalla logica di validazione temporale del tuo server.
Gestione dei segreti in Base64
Un problema comune quando si firma un JWT online è la gestione della codifica della chiave segreta. Molti sistemi backend e tutorial consigliano di generare un array di byte sicuro e casuale per il segreto HMAC, salvandolo come stringa Base64 nelle variabili d'ambiente.
Se il server decodifica questa stringa Base64 in byte grezzi prima di firmare o verificare il token, incollare la stringa Base64 direttamente in un generatore standard produrrà una firma non valida. Il generatore tratterà i caratteri Base64 come testo normale, causando un errore di corrispondenza.
Per risolvere il problema, basta spuntare la casella Il segreto è codificato in Base64. Il tool decodificherà la stringa segreta nei suoi byte grezzi originali prima di applicare l'hash HMAC, garantendo che la firma generata corrisponda perfettamente a quella del tuo ambiente backend.
Comprendere la struttura di un JWT
Quando generi un token, l'output viene mostrato in un formato a colori per aiutarti a capirne la struttura. Un JWT standard è composto da tre parti separate da punti (.):
- Header (Rosso): Contiene i metadati del token, principalmente l'algoritmo di firma (es.
{"alg":"HS256","typ":"JWT"}). Viene generato automaticamente in base all'algoritmo scelto e codificato in Base64-URL. - Payload (Blu): I tuoi dati JSON effettivi, anch'essi codificati in Base64-URL. Questa parte è facilmente leggibile da chiunque intercetti il token, motivo per cui non dovresti mai inserire password o dati altamente sensibili nel payload.
- Firma (Verde): L'hash crittografico dell'header e del payload codificati, firmato utilizzando la tua chiave segreta. Questo garantisce che il token non sia stato manomesso durante la trasmissione.
Se hai già un token e vuoi visualizzarne il contenuto senza la chiave segreta, puoi incollarlo nel nostro JWT Decoder per ispezionare header e payload in totale sicurezza.