Decodificar JWT online | Analise seus tokens JSON Web | Awesome Toolkit

Decodificador JWT

Decodifique e inspecione seus tokens JWT (JSON Web Token) no lado do cliente. Header, payload, expiração e claims.

Por Marshkalk

Como usar o decodificador JWT

  1. Cole um token JWT (começa com eyJ) na caixa de entrada.
  2. Clique em Decodificar para ler o cabeçalho, o payload e a assinatura.
  3. A data de expiração (claim exp) é mostrada em formato legível se estiver presente.

O que é um JWT?

Um JSON Web Token (JWT) é um formato de token compacto e seguro para URLs definido na RFC 7519. É composto por três partes codificadas em Base64url separadas por pontos:

  • Cabeçalho: declara o algoritmo de assinatura (alg) e o tipo de token (typ: "JWT")
  • Payload: contém claims: padrões (iss, sub, aud, exp, iat) e personalizados
  • Assinatura: resultado de assinar base64url(header).base64url(payload) com o algoritmo declarado

Claims JWT mais comuns

ClaimNome completoSignificado
issIssuerEmissor do token (ex. URL do servidor de autenticação)
subSubjectSujeito do token (normalmente o ID do utilizador)
audAudienceDestinatário pretendido (ex. URL da sua API)
expExpirationTimestamp Unix após o qual o token é inválido
iatIssued atTimestamp Unix de criação do token
jtiJWT IDID único para prevenir reutilização do token

JWT vs cookies de sessão

Sessões tradicionais armazenam o estado no servidor; um cookie de ID de sessão é enviado com cada pedido. JWTs armazenam o estado no próprio token, sem estado, sem necessidade de consultar a base de dados. Atrativos para microsserviços, mas um token válido continua válido até expirar mesmo após o logout.

Nota de segurança

Esta ferramenta decodifica o token localmente no seu navegador, não valida a assinatura. Não confie nos claims do payload decodificado sem verificação de assinatura no servidor. Nunca cole tokens que concedam acesso a sistemas de produção em qualquer ferramenta online.

RGPD, Lei 58/2019 e recomendacoes de seguranca

Os tokens JWT que contêm dados identificadores de utilizador (ID, email, papéis) são dados pessoais ao abrigo do RGPD e da Lei 58/2019 (que executa o RGPD em Portugal). Dois pontos concretos para os programadores:

  • Duração do token : A CNPD (Comissão Nacional de Proteção de Dados) aplica o princípio da minimização dos dados. Use a duração mínima necessária. Access tokens de 15-60 minutos com refresh tokens é o modelo recomendado.
  • Dados no payload : O payload JWT está apenas codificado em Base64, não cifrado. Qualquer proxy, CDN ou log de aplicação pode lê-lo. Nunca coloque dados sensíveis (NIF, IBAN, passwords) num payload JWT.

A ENISA recomenda RS256 (RSA + SHA-256) ou ES256 (ECDSA P-256) para a assinatura de JWTs em producao. Os tokens com "alg": "none" devem ser rejeitados explicitamente no servidor, aceitar tokens nao assinados é uma vulnerabilidade crítica conhecida.