Decodifichi il payload JWT senza verificare la firma
Questo decodificatore JWT divide un JSON Web Token nei suoi tre segmenti compatti e legge il JSON codificato in base64url nell’intestazione e nel payload.
Esegui gratis nel browser
Restituisce entrambe le sezioni come oggetti strutturati, rendendo semplice esaminare o inoltrare claim, identificatori, timestamp, emittenti, destinatari e metadati dell’algoritmo. La firma non viene deliberatamente verificata: i valori decodificati descrivono ciò che il token dichiara, ma non dimostrano chi lo abbia creato. Usi il risultato per debug, sviluppo, documentazione e ispezioni prudenti, mai come prova che un token sia autentico o autorizzato.
Comprenda cosa dimostra la decodifica e cosa non dimostra
Un JWT contiene normalmente intestazione, payload e firma, uniti da punti. I primi due segmenti sono JSON codificato in base64url: il contenuto è predisposto per un trasporto compatto, ma non è cifrato né nascosto. Questa capacità divide il token fornito, decodifica i due segmenti come UTF-8, analizza il JSON e restituisce gli oggetti di intestazione e payload. Non usa il terzo segmento per autenticare alcunché. La distinzione è fondamentale, perché chiunque può costruire una stringa simile a un token con claim arbitrari. Vedere nel payload decodificato un soggetto, ruolo, emittente, destinatario o valore di scadenza non prova che lo abbia emesso un sistema affidabile. Usi la decodifica quando deve vedere la struttura del token, diagnosticare nomi o valori dei claim oppure ottenere una rappresentazione leggibile durante lo sviluppo. Quando una decisione di sicurezza dipende dal token, usi una libreria di verifica JWT appropriata con una chiave esplicitamente attendibile e vincoli relativi ad algoritmo, emittente e destinatario.
Invii un JWT compatto e interpreti la risposta
Incolli o invii il JWT compatto completo nel campo token. Un token strutturalmente valido presenta esattamente tre segmenti separati da due punti, sebbene questo decodificatore legga solo i primi due. La risposta contiene un oggetto header e un oggetto payload. I campi comuni dell’intestazione includono typ, che spesso identifica il tipo di media JWT, e alg, che indica il presunto algoritmo di firma. Il payload include spesso sub per il soggetto, iss per l’emittente, aud per il destinatario, exp per la scadenza e claim specifici dell’applicazione. Il decodificatore non richiede alcun claim e conserva i valori JSON presenti. I claim NumericDate come exp, nbf e iat restano numeri anziché essere convertiti in date, evitando ipotesi su come Lei intenda visualizzarli o confrontarli. Se il token ha un numero errato di segmenti, base64url malformato, UTF-8 o JSON non valido, oppure una sezione decodificata che non è un oggetto, la richiesta restituisce un errore di input non valido invece di un risultato parziale.
Usi i claim decodificati in modo sicuro
La decodifica è particolarmente utile ai confini tra sistemi. Chi sviluppa un’API può confrontare i claim prodotti da un provider di identità con i nomi attesi dall’applicazione. Il supporto può esaminare un token di prova oscurato per capire se manca un destinatario o uno scope. Una suite di test può decodificare token creati da una fixture locale e verificare che i claim personalizzati necessari siano inclusi, prima di collaudare separatamente la verifica crittografica. Mantenga esplicito il confine di sicurezza in ogni flusso: i dati decodificati sono input non attendibili. Non conceda accesso, non scelga un tenant, non accetti un’identità e non esponga dati privati soltanto perché lo richiede un claim decodificato. Eviti di incollare veri token bearer in log, ticket, chat o documenti condivisi, perché un JWT può essere una credenziale attiva anche se il payload sembra innocuo. Per la diagnosi preferisca esempi sintetici, scaduti o generati localmente. Se un’automazione deve elaborare token reali, li trasmetta soltanto tramite un canale adeguatamente protetto e faccia seguire alla decodifica una verifica basata su configurazioni attendibili.
Casi d'uso
Eseguire il debug dei claim del provider
Esamini la forma di intestazione e payload per confrontare nomi dei claim, destinatari, scope e identificatori emessi con la configurazione dell’applicazione.
Controllare token di prova locali
Decodifichi i token di fixture nei test o negli script e confermi i claim personalizzati attesi prima di verificare separatamente la firma.
Spiegare la struttura del token
Trasformi un JWT compatto in oggetti JSON leggibili per documentazione, formazione o diagnosi con esempi sintetici e opportunamente oscurati.
Domande frequenti
Questo strumento verifica la firma JWT?
No. Decodifica soltanto intestazione e payload. Consideri ogni campo non attendibile finché un verificatore non convalida firma e claim richiesti.
Quanto costa?
Il prezzo dell’API è $0.002 per richiesta. La versione browser può eseguire localmente la stessa logica deterministica di decodifica.
Perché il token deve avere tre segmenti?
La serializzazione compatta JWT comprende intestazione, payload e firma separati da punti. Questa capacità rifiuta stringhe con una struttura diversa.
I timestamp di scadenza vengono convertiti in date?
No. Valori come exp, nbf e iat sono restituiti esattamente come nel payload, affinché Lei possa interpretarli secondo i Suoi requisiti.
Posso decodificare un JWT non firmato?
Un token compatto richiede comunque tre segmenti; quello non protetto può avere il terzo vuoto. Intestazione e payload vengono decodificati senza conclusioni di sicurezza.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/jwt-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.c2lnbmF0dXJl"}'const res = await fetch("https://api.kit.forhosting.com/web/jwt-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.c2lnbmF0dXJl"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/jwt-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.c2lnbmF0dXJl"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/jwt-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.c2lnbmF0dXJl"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.c2lnbmF0dXJl"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/jwt-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.c2lnbmF0dXJl"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.jwt_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |