O decodificador JWT divide um token da Web JSON em seus três segmentos separados por pontos, base64url-decodifica o cabeçalho e a carga útil e renderiza ambos como JSON formatados. Os JWTs não são criptografados — a "codificação" é apenas base64url, uma transformação reversível — para que qualquer pessoa que possua um token possa ler todas as reivindicações dentro dela. Essa ferramenta torna essa inspeção instantânea: colar um token de um cabeçalho Set-Cookie, um cabeçalho de autorização (o prefixo do portador é removido automaticamente) ou o painel do provedor de autenticação e ver exatamente o que seu servidor insere.
A tabela de reivindicações é onde a depuração realmente acontece. Registros de tempo registrados — exp (expiração), IAT (emitido em) e NBF (não antes) — são timestamps UNIX, inúteis para ler RAW. O decodificador converte cada um em uma data humana e um tempo relativo ("expirou 3 horas atrás", "expira em 14 minutos") e sinalizadores expirou tokens em vermelho. A maioria dos incidentes "401 não autorizados, mas o token parece bom" se resume a uma EXP vencida, uma NBF distorcida no relógio ou uma afirmação AUD que não corresponde ao que a API valida - tudo aqui visível em dois segundos.
Uma coisa que esta ferramenta deliberadamente não faz: verificar assinaturas. A verificação requer o segredo de assinatura (HS256) ou chave pública (RS256/ES256), e uma ferramenta do lado do cliente pedindo para colar um segredo HMAC seria ensinar maus hábitos. A decodificação é 100% do lado do cliente - o token nunca sai do seu navegador, não atinge nenhum servidor e aparece em nenhum log de solicitação, o que importa porque uma produção em tempo real JWT é uma credencial de portadora. Quem tem, é você.
Solte o JWT na área de entrada. Agarre-o no cabeçalho de autorização na guia Rede DevTools do seu navegador, um cookie, localStorage ou uma resposta curl. Um prefixo "portador" e um espaço em branco ao redor são removidos automaticamente, para que você possa colar o valor total do cabeçalho sem limpeza.
Ambos os segmentos são renderizados como JSON formatados lado a lado. O cabeçalho informa o algoritmo de assinatura (ALG: RS256, HS256, etc.) e ID da chave (KID) — útil quando sua rotação JWKS está se comportando mal. A carga útil contém as reivindicações: sub, ISS, AUD, escopos, funções e quaisquer dados personalizados que sua camada de autenticação tenha adicionado.
As reivindicações de tempo (EXP, IAT, NBF) são decodificadas de segundos UNIX em datas legíveis com tempos relativos. Um EXP expirado é exibido em vermelho com exatamente quanto tempo ele expirou; um válido aparece em verde com o tempo restante. Se o NBF estiver no futuro — geralmente o relógio entre seus servidores — o token será rejeitado, mesmo que "pareça" bem.
Essa ferramenta nunca verifica a assinatura — que requer a chave pública ou secreta e pertence ao servidor, não a uma ferramenta do navegador. Nunca trate as reivindicações decodificadas como entradas confiáveis: um invasor pode cumular um token com qualquer carga útil que desejar. Apenas uma assinatura verificada prova que as reivindicações vieram de seu emissor não modificada.
Base64URL Decodificação em Pure TypeScript — ambos os segmentos JSON formatados e legíveis imediatamente
EXP reivindicação sinalizada em vermelho quando expirado, verde quando válido, com tempo relativo exato de qualquer maneira
EXP, IAT e NBF convertidos de segundos UNIX brutos para datas ISO e frases do estilo "3 horas atrás"
Cole todo o cabeçalho de autorização — "Bearer" e Stray Whitespace são removidos automaticamente
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text
Encode and decode text to/from Base64 format
Convert between Unix timestamps and human-readable dates
Format, validate, and minify JSON data
0 comments
No comments yet. Be the first to share your thoughts!