[ publicidade ]

JWT Decoder

Cole um JSON Web Token para ver o header, o payload formatado e as datas de emissão e expiração convertidas para o seu fuso horário, com indicação se o token ainda é válido.

Token JWT

A assinatura não é verificada: a decodificação acontece no navegador e nenhuma chave é solicitada.

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "sub": "1234567890",
  "name": "NT Tools",
  "iat": 1700000000,
  "exp": 4102444800
}

Usar via API

Decodifica header e payload de um JWT e calcula as datas das claims. A assinatura não é verificada.

POSThttps://enhanced.dev.br/api/v1/jwt/decode
Parâmetros do corpo JSON
Corpo (JSON)TipoDescrição
token *stringJWT; o prefixo "Bearer " é aceito.

Exemplo de requisição

curl -X POST "https://enhanced.dev.br/api/v1/jwt/decode" \
    -H "Content-Type: application/json" \
    -d '{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJpYXQiOjE3MDAwMDAwMDAsImV4cCI6NDEwMjQ0NDgwMH0.signature"}'

Resposta

{
  "ok": true,
  "data": {
    "header": {
      "alg": "HS256",
      "typ": "JWT"
    },
    "payload": {
      "sub": "123",
      "iat": 1700000000,
      "exp": 4102444800
    },
    "signature": "signature",
    "issuedAt": "2023-11-14T22:13:20.000Z",
    "notBefore": null,
    "expiresAt": "2100-01-01T00:00:00.000Z",
    "expired": false,
    "signatureVerified": false
  },
  "meta": {
    "version": "v1"
  }
}
  • Erros retornam { ok: false, error: { code, message } } com status HTTP 4xx/5xx.
  • Gratuita e sem chave de API. Limite de 120 requisições por minuto por IP.
  • CORS liberado: pode ser chamada direto do navegador em qualquer domínio.
[ publicidade ]

Como usar

  1. Cole o token no campo (o prefixo Bearer é removido automaticamente).
  2. Veja o header (algoritmo e tipo) e o payload decodificados como JSON.
  3. Confira o status: válido, expirado ou ainda não ativo (nbf).
  4. Consulte as claims de tempo iat, nbf e exp convertidas em data local.

Casos de uso

  • Descobrir por que uma API responde 401: token expirado ou audiência errada.
  • Conferir scopes, roles e tenant presentes no token emitido pelo provedor de identidade.
  • Depurar integrações OAuth 2.0 e OpenID Connect (id_token, access_token).
  • Verificar o algoritmo de assinatura anunciado no header.

Conceitos técnicos

Estrutura de um JWT

Um JWT (RFC 7519) tem três partes em Base64URL separadas por pontos: header, payload e assinatura. Header e payload são JSON comum; a assinatura é calculada sobre os dois primeiros segmentos com o algoritmo indicado em alg, como HS256 ou RS256.

Claims registradas

iss identifica o emissor, sub o sujeito, aud a audiência, exp o instante de expiração, nbf o instante a partir do qual é válido e iat o momento de emissão. Datas são NumericDate: segundos desde 1970-01-01 UTC.

Decodificar não é verificar

Qualquer pessoa pode ler um JWT, pois ele não é criptografado. A segurança vem da assinatura, que só o servidor com a chave consegue validar. Por isso esta ferramenta nunca pede segredo ou chave privada, e você nunca deve confiar em um payload sem verificar a assinatura no backend.

Perguntas frequentes

É seguro colar meu token aqui?

A decodificação é feita localmente com JavaScript e nada é transmitido. Ainda assim, trate tokens de produção como credenciais e evite compartilhá-los.

Por que a assinatura não é validada?

Validar exige a chave secreta (HMAC) ou a chave pública (RSA/ECDSA). Esta ferramenta foca em inspeção sem manipular chaves.

Qual a diferença entre JWT e JWE?

JWT assinado (JWS) tem payload legível. JWE criptografa o conteúdo e tem cinco segmentos; não pode ser lido sem a chave de descriptografia.

Ferramentas relacionadas