Decodificador de JWT
Veja o que tem dentro de um JSON Web Token.
Claims
| Claim | Valor | Significado |
|---|
Esta ferramenta decodifica tokens, mas nunca verifica assinaturas. Seu token fica nesta aba do navegador.
Funciona no navegador. Nada do que você digita é enviado a lugar nenhum.
- Datas exp e iat legíveis
- Status de expiração à primeira vista
- Token fica no seu dispositivo
Como decodificar um JWT
- Cole o token, com ou sem o prefixo Bearer.
- Leia o header e o payload, mostrados como JSON formatado.
- Confira a tabela de claims para emissor, audiência e expiração.
As três partes de um JWT
| Parte | Codificação | Contém |
|---|---|---|
| Header | JSON em base64url | Algoritmo de assinatura (alg) e tipo de token (typ) |
| Payload | JSON em base64url | As claims: os dados de fato do token |
| Assinatura | Bytes em base64url | Prova de que o header e o payload não foram alterados |
Algoritmos de assinatura comuns
| Valor de alg | Tipo | Nota |
|---|---|---|
| HS256 | Simétrico, segredo compartilhado | Comum para um único app que emite e verifica seus próprios tokens |
| RS256 | Assimétrico, RSA | Comum quando outra parte precisa verificar o token, como no OAuth |
| ES256 | Assimétrico, curva elíptica | Assinaturas mais curtas que RSA para o mesmo nível de segurança |
| none | Sem assinatura | Um verificador deveria sempre rejeitar esse algoritmo |
Claims padrão, da RFC 7519
- exp, nbf e iat são todos valores NumericDate: segundos inteiros desde o epoch Unix, nunca milissegundos.
- aud pode ser uma única string ou um array de strings, quando um token é destinado a mais de uma audiência.
- jti deve ser único por token, o que é o que torna possível bloquear um token específico.
- Nenhuma das claims padrão é obrigatória. Um token pode carregar só as claims personalizadas que uma aplicação definir.
Perguntas frequentes sobre Decodificador de JWT
Quais são as três partes de um JWT?
Um header, um payload e uma assinatura, cada um codificado em base64url e unidos por pontos. O header nomeia o algoritmo de assinatura, o payload guarda as claims, e a assinatura permite ao servidor conferir quem emitiu o token.
Esta ferramenta verifica a assinatura?
Não. Ela decodifica o header e o payload e nunca verifica a assinatura. Verifique tokens no seu servidor com a chave secreta ou pública antes de confiar neles. O token que você cola nunca sai do navegador.
O payload de um JWT é criptografado?
Não em um JWT assinado normal. Ele é só codificado, então qualquer pessoa com o token consegue lê-lo, por isso senhas e dados privados nunca deveriam entrar em um. Tokens criptografados (JWE) têm cinco partes e precisam da chave.
O que significam exp, iat e nbf?
São horários em segundos desde 1º de janeiro de 1970 (UTC). exp é quando o token expira, iat é quando foi emitido, e nbf é o horário antes do qual ele não deve ser aceito.
Por que meu token aparece como expirado?
O horário exp dele é anterior ao relógio do seu dispositivo. Tokens de acesso costumam durar só de 5 a 60 minutos, então peça um novo, e confira se o relógio do seu computador está certo.
O que a RFC 7519 define?
Ela define o próprio formato JWT: três partes base64url unidas por pontos, e o significado das claims padrão como iss, sub, exp e aud. Ela não exige nenhum algoritmo de assinatura específico.
Um JWT pode ser revogado antes de expirar?
Não pelo próprio token, já que ele é só dado assinado. Revogar um antes do tempo precisa de suporte no servidor, como uma lista de bloqueio pela claim jti, ou uma expiração curta combinada com um token de atualização separado.
Por que exp e iat aparecem como números grandes em vez de datas?
Eles são guardados no token como valores NumericDate, segundos inteiros desde o epoch Unix (1º de janeiro de 1970 UTC). Esta página mostra o número bruto ao lado de uma data legível, por conveniência.