Decodificador JWT

Decodifique e inspecione tokens JWT rapidamente. Veja o cabeçalho, payload e informações de expiração de forma clara e prática.

No seu navegador Atualizado 05/2026

Cole qualquer JSON Web Token abaixo para decodificá-lo. Seu token é processado apenas na sua sessão — não o registramos nem o armazenamos.

Verificação da assinatura

Use esta ferramenta a partir do seu agente de IA

API JSON e servidor Model Context Protocol (MCP) gratuitos. Sem cadastro, sem chave de API, CORS aberto. Projetado para Claude, ChatGPT, Cursor, scripts e aplicativos frontend.

curl -X POST https://mate.tools/api/v1/jwt-decode.php \
  -H "Content-Type: application/json" \
  -d '{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.signature","secret":"your-256-bit-secret"}'
import urllib.request, json

req = urllib.request.Request(
    "https://mate.tools/api/v1/jwt-decode.php",
    data=json.dumps({"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.signature","secret":"your-256-bit-secret"}).encode(),
    headers={"Content-Type": "application/json"},
)
with urllib.request.urlopen(req) as r:
    print(json.load(r))
const r = await fetch("https://mate.tools/api/v1/jwt-decode.php", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.signature","secret":"your-256-bit-secret"}),
});
console.log(await r.json());

Adicione a claude_desktop_config.json (Claude Desktop), ~/.cursor/mcp.json (Cursor) ou qualquer outro cliente compatível com MCP:

{
  "mcpServers": {
    "mate-tools": {
      "command": "npx",
      "args": ["-y", "@mate-tools/mcp-server"]
    }
  }
}
Documentação da API OpenAPI 3.1 npm 60 req/min · 600 req/hora · corpo máx. 1 MB

Como usar

  1. Cole seu token JWT no campo acima.
  2. Clique em Decodificar para ver o cabeçalho, payload e assinatura.
  3. Para verificar a assinatura, forneça o segredo (HS256/384/512) ou a chave pública (RS256/384/512).
  4. Verifique o status de expiração para ver se o token ainda está ativo.

Recursos principais

  • Decodifica cabeçalho e payload do JWT em um clique
  • Verifica assinaturas HS256, HS384, HS512 com um segredo
  • Verifica assinaturas RS256, RS384, RS512 com uma chave pública
  • Mostra timestamps de expiração, não-antes e emitido-em em formato legível
  • O token nunca é registrado nem armazenado em nossos servidores

Casos de uso comuns

  • Depurar fluxos de autenticação em sua aplicação
  • Inspecionar tokens retornados por um provedor OAuth ou OpenID Connect
  • Verificar quando um token de acesso expira
  • Verificar que um token foi assinado pelo emissor esperado

Perguntas frequentes

Um JWT é uma forma compacta e segura para URL de representar claims entre duas partes. É composto por três partes — cabeçalho, payload e assinatura — separadas por pontos. JWTs são amplamente usados em autenticação e autorização (OAuth 2.0, OpenID Connect, single sign-on).

Sim — o token é enviado ao nosso servidor apenas para que o PHP possa decodificá-lo e (opcionalmente) verificar a assinatura. O token nunca é registrado, nunca armazenado e nunca gravado em disco. Existe apenas na memória pela duração da requisição.

Verificamos HS256, HS384, HS512 (HMAC com SHA-2) quando você fornece o segredo compartilhado, e RS256, RS384, RS512 (RSA com SHA-2) quando você fornece a chave pública do emissor em formato PEM. Outros algoritmos (ES256, EdDSA, etc.) são decodificados mas não verificados.

O claim exp (expiração) é um timestamp Unix após o qual o token não deve mais ser aceito. Um JWT expirado deve ser rejeitado pelo servidor mesmo se a assinatura for válida. Use um refresh token para obter um novo token de acesso.

Não. Decodificar um JWT apenas lê seu conteúdo — não prova que o token seja autêntico. Você deve sempre verificar a assinatura com o segredo ou chave pública do emissor antes de confiar em qualquer claim dentro dele.