Ferramentas

Decodificador JWT Online Gratuito

Decodifique e inspecione JSON Web Tokens diretamente no seu navegador. Visualize o header, o payload e os claims com datas de expiração legíveis. Nada é jamais enviado a um servidor.

Inspetor de Token

Algoritmo
Tipo
Expiração

Header

Payload

Assinatura

A verificação da assinatura requer a chave secreta e não é suportada por esta ferramenta.
Toda a decodificação acontece localmente no seu navegador. O seu token nunca é carregado, armazenado ou registado.

O que é um JWT?

Um JSON Web Token (JWT, RFC 7519) é uma forma compacta e segura para URLs de representar claims entre duas partes. É composto por três partes codificadas em Base64URL unidas por pontos — header.payload.signature. O seu uso mais comum é a autenticação sem estado de APIs REST: após o login, o servidor emite um token assinado que o cliente envia em cada pedido, permitindo ao servidor verificar a identidade sem manter o estado da sessão.

Estrutura do JWT: Header, Payload, Assinatura

Header

Declara o algoritmo de assinatura (alg, ex. HS256, RS256, ES256) e o tipo de token (typ), quase sempre JWT.

Payload

Contém os claims padrão e personalizados. Está apenas codificado em Base64URL, não cifrado — qualquer pessoa pode lê-lo, por isso nunca guarde segredos aqui.

Assinatura

Calculada assinando o header e o payload codificados com uma chave secreta ou privada. Prova a integridade mas não pode ser verificada sem essa chave.

Claims JWT comuns explicados

O payload contém claims — afirmações sobre o token. Estes claims registados são definidos pelo padrão JWT:

sub Subject — o sujeito a que o token se refere, normalmente o ID do utilizador.
iss Issuer — identifica quem emitiu o token.
aud Audience — os destinatários a que o token se destina.
exp Expiration Time — timestamp Unix após o qual o token deve ser rejeitado.
iat Issued At — timestamp Unix de quando o token foi criado.
nbf Not Before — timestamp Unix antes do qual o token não deve ser aceite.
jti JWT ID — um identificador único, útil para evitar a reutilização do token.

Boas práticas de segurança para JWT

Nunca coloque dados sensíveis no payload — está apenas codificado, não cifrado, e é legível por qualquer pessoa.
Defina sempre um claim exp e mantenha curtas as durações dos tokens para limitar o impacto de um token vazado.
Prefira algoritmos assimétricos (RS256 ou ES256) para microsserviços, para que os serviços possam verificar sem partilhar um segredo.
Valide sempre os claims iss e aud no servidor e rejeite os tokens cujo alg esteja definido como none.
Nunca exponha tokens em URLs ou ficheiros de log; envie-os no header Authorization e armazene-os com segurança.

Perguntas Frequentes

Não. Um JWT padrão é assinado, não cifrado. O header e o payload estão apenas codificados em Base64URL, o que significa que qualquer pessoa que tenha o token pode decodificar e ler o seu conteúdo. A assinatura apenas garante que o token não foi adulterado — não oculta os dados. Se precisar de confidencialidade, use JWE (JSON Web Encryption) ou nunca coloque dados sensíveis no payload.

Não. Verificar a assinatura de um JWT requer a chave secreta (para HS256) ou a chave pública (para RS256/ES256), que apenas o servidor emissor deve possuir. Esta ferramenta decodifica intencionalmente o token no lado do cliente sem verificação, para que nenhuma chave saia do seu dispositivo. Verifique sempre as assinaturas no seu servidor, nunca no navegador.

HS256 é simétrico: a mesma chave secreta assina e verifica o token, por isso qualquer parte que possa verificar também pode forjar tokens. RS256 é assimétrico: uma chave privada assina e uma chave pública separada verifica. RS256 é preferível para sistemas distribuídos e microsserviços porque pode partilhar livremente a chave pública mantendo secreta a chave privada de assinatura.

O claim exp é um timestamp Unix em segundos. Um erro comum é fornecê-lo em milissegundos (13 dígitos) em vez de segundos (10 dígitos), o que coloca a expiração muito no passado ou no futuro. A diferença de relógio entre servidores também pode causar expiração prematura — permita uma pequena margem ao validar. Use o Inspetor de Token acima para ver a data de expiração legível ao lado do valor bruto.