Gerador e assinador de JWT

🔒 Roda localmente no seu navegador — nada é enviado.
Adição rápida:
 

Sobre esta ferramenta

jwtviewer.com decodifica tokens; o jwtparser os cria. Defina seus claims, escolha um algoritmo HMAC, digite um segredo e a ferramenta assina o token ao vivo com a Web Crypto API. Útil para testar uma API que espera um bearer token, preparar auth em testes, ou reproduzir um bug com um exp ou role específico.

Apenas algoritmos HMAC (segredo compartilhado) são suportados — nunca assine aqui um token de produção real e trate os tokens gerados como apenas para teste. Tudo acontece localmente; o segredo e o payload nunca saem do navegador. Para decodificar ou verificar um token, use jwtviewer.com.

A assinatura segue a RFC 7519: a ferramenta monta o header {"alg":…,"typ":"JWT"}, codifica header e payload em Base64url e calcula uma assinatura HMAC-SHA sobre header.payload com seu segredo usando a Web Crypto API. HS384 e HS512 apenas usam hashes mais longos que o HS256 — escolha o que seu backend espera. Claims de tempo como exp, iat e nbf são segundos Unix, por isso os botões de adição rápida os calculam para você. As três partes da saída são coloridas para mostrar onde começam header, payload e assinatura.

Perguntas frequentes

Esta ferramenta pode criar tokens RS256?

Não — apenas a família HMAC (HS256, HS384, HS512), que assina com um segredo compartilhado. RS256 precisa de uma chave privada RSA. Para testes, HMAC geralmente basta; para decodificar ou verificar um token, use jwtviewer.com.

É seguro digitar um segredo aqui?

A assinatura acontece inteiramente no seu navegador com a Web Crypto API — o segredo e o payload nunca são enviados. Mesmo assim, a boa prática é usar aqui segredos de teste descartáveis e nunca uma chave de assinatura de produção real.

Como defino a expiração do token?

A claim exp é um timestamp Unix em segundos. Clique num botão de adição rápida — exp = +1h, +1d ou +7d — ou digite um valor; o token é reassinado na hora a cada mudança.

Por que minha API rejeita o token gerado?

Causas comuns: o segredo não bate com o do servidor, o algoritmo difere do que o backend espera, exp já passou, ou o servidor exige um algoritmo assimétrico como RS256. Decodifique o token em jwtviewer.com para comparar os claims.