Vai al contenuto
🛠️ToolsShed

Debugger JWT

Decodifica e ispeziona intestazioni, payload e scadenza dei JWT.

Informazioni sullo strumento

Un JWT (JSON Web Token) è un formato compatto e codificato per trasmettere informazioni in modo sicuro tra i sistemi. Questo strumento ti consente di decodificare e ispezionare istantaneamente il contenuto di qualsiasi JWT, rivelando l'intestazione, il payload e i claim contenuti, senza necessità di strumenti esterni o comandi di terminale.

Per utilizzare JWT Debugger, è sufficiente incollare il tuo JWT nel campo di input e lo strumento mostrerà immediatamente l'intestazione decodificata (contenente l'algoritmo e il tipo di token), il payload (con i dati utente, il tempo di scadenza e i claim personalizzati) e la validità della firma del token. Ciò è prezioso durante lo sviluppo di API, il debug dei problemi di autenticazione o la verifica del contenuto del token durante la risoluzione dei problemi.

I casi d'uso comuni includono l'ispezione dei token di autenticazione dai flussi OAuth2, la convalida dei claim personalizzati nei microservizi, il controllo dei tempi di scadenza dei token e la comprensione dei dati incorporati nei tuoi token. Tieni presente che sebbene lo strumento possa decodificare qualsiasi JWT, non può verificare la firma senza la chiave segreta; per una convalida completa, utilizza le librerie lato server o le API.

Domande Frequenti

Implementazione del Codice

import base64, json

def decode_jwt(token: str) -> dict:
    parts = token.split(".")
    if len(parts) != 3:
        raise ValueError("Invalid JWT format")
    
    def decode_part(part):
        # Add padding
        padded = part + "=" * (4 - len(part) % 4)
        decoded = base64.urlsafe_b64decode(padded)
        return json.loads(decoded)
    
    return {
        "header": decode_part(parts[0]),
        "payload": decode_part(parts[1]),
        "signature": parts[2],
    }

token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.signature"
decoded = decode_jwt(token)
print(json.dumps(decoded["payload"], indent=2))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.