1. O Que E JWT
JWT (JSON Web Token) e um padrao aberto definido pela RFC 7519 que permite transmitir informacoes de forma compacta e segura entre partes como um objeto JSON. As informacoes podem ser verificadas e confiaveis porque sao assinadas digitalmente — usando HMAC com uma chave secreta ou criptografia assimetrica (RSA, ECDSA).
JWTs sao amplamente usados para autenticacao (verificar quem o usuario e) e autorizacao (verificar o que o usuario pode fazer). Ao contrario de sessoes armazenadas no servidor, JWTs sao stateless: o servidor nao precisa consultar um banco de dados para validar o token, pois toda a informacao necessaria esta no proprio token.
2. Estrutura do Token
Um JWT tem o formato xxxxx.yyyyy.zzzzz, com tres partes separadas por pontos, cada uma codificada em Base64URL:
- Header — declara o tipo do token (JWT) e o algoritmo de assinatura (HS256, RS256, etc.).
- Payload — contem os claims: informacoes sobre o usuario e metadados do token.
- Signature — garante que o token nao foi alterado. Calculada a partir de header + payload + chave secreta.
"A signature nao criptografa o payload — ela apenas garante integridade. Nunca coloque senhas ou dados sensiveis no payload de um JWT em producao."
3. Claims Padrao
Claims sao declaracoes sobre uma entidade (geralmente o usuario) e metadados adicionais. Claims registradas pela especificacao incluem:
- iss (issuer) — quem emitiu o token
- sub (subject) — o usuario ou entidade sobre o qual o token se refere
- aud (audience) — para quem o token e destinado
- exp (expiration time) — quando o token expira (Unix timestamp)
- iat (issued at) — quando o token foi emitido
- jti (JWT ID) — identificador unico do token
4. Seguranca e Boas Praticas
JWTs sao seguros quando usados corretamente, mas ha armadilhas comuns:
- Sempre valide a assinatura no servidor — nunca confie cegamente no payload.
- Use chaves secretas longas e aleatorias (minimo 256 bits para HMAC-SHA256).
- Defina sempre um
exprazoavel — tokens que nunca expiram sao um risco de seguranca. - Para producao, prefira RS256/ES256 (assimetrico) sobre HS256 em sistemas distribuidos.
- Transmita tokens apenas via HTTPS — nunca em URLs.
5. Casos de Uso
- Autenticacao de APIs REST: o cliente envia o JWT no header Authorization e o servidor valida sem consultar banco de dados.
- Single Sign-On (SSO): compartilhar identidade entre multiplos servicos com um unico token.
- Troca de informacoes: transmitir claims entre microsservicos de forma verificavel.
- Debug e inspecao: esta ferramenta permite inspecionar tokens JWT recebidos durante desenvolvimento.
6. Perguntas Frequentes
Esta ferramenta pode verificar a assinatura?
O decode exibe a assinatura e o algoritmo, mas a verificacao criptografica exige a chave secreta ou publica. O encode gera tokens com HMAC-SHA256, HS384 ou HS512 usando a Web Crypto API do navegador.
Meu token e enviado para algum servidor?
Nao. Todo o processamento — decode e encode — acontece localmente no seu navegador via JavaScript. Nenhum token e transmitido externamente.
Posso usar o token gerado em producao?
Nao recomendamos. Para producao, use bibliotecas JWT especializadas no servidor (jsonwebtoken para Node.js, PyJWT para Python, jjwt para Java, etc.) com gestao adequada de chaves e validacao completa de claims.