Como usar o decodificador JWT
- Cole um token JWT (começa com
eyJ) na caixa de entrada. - Clique em Decodificar para ler o cabeçalho, o payload e a assinatura.
- 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
| Claim | Nome completo | Significado |
|---|---|---|
iss | Issuer | Emissor do token (ex. URL do servidor de autenticação) |
sub | Subject | Sujeito do token (normalmente o ID do utilizador) |
aud | Audience | Destinatário pretendido (ex. URL da sua API) |
exp | Expiration | Timestamp Unix após o qual o token é inválido |
iat | Issued at | Timestamp Unix de criação do token |
jti | JWT ID | ID ú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.