Decodificador e verificador de JWT
Fixar nas suas ferramentasDecodifique um JSON Web Token, confira a expiração e os claims e verifique a assinatura com um segredo ou chave pública.
Roda inteiramente no seu navegador. O que você digita nunca é enviado aos nossos servidores.
Payload
Um segredo para HS256/384/512, uma chave pública em PEM (SPKI ou certificado) para as demais, ou um JWK ou JWKS (a chave é escolhida pelo kid do token). A chave nunca é compartilhada nem salva.
histórico · 0
As entradas processadas aparecem aqui enquanto esta página estiver aberta. Recarregar a página limpa a lista.
Exemplos de código
Copie estes exemplos para o seu próprio projeto. Cada um usa apenas a biblioteca padrão da linguagem, por isso não há nada para instalar.
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')
console.log(JSON.stringify(JSON.parse(json), null, 2))O que faz
Decodifique um JSON Web Token para ler o cabeçalho e o payload, veja se ele expirou e verifique a assinatura com um segredo ou uma chave pública. O token é decodificado no seu navegador, esta página não mostra anúncios e o token e a chave nunca são compartilhados nem salvos.
Como usar
- Cole o token. Um prefixo
Bearere quebras de linha são ignorados. - Leia o payload como JSON formatado ou compacto. Abaixo dele você vê o algoritmo, o status e os horários
exp,nbfeiatjunto de quanto faltam ou passaram em relação a agora. - Para verificar a assinatura, informe a chave: um segredo para HS256, HS384 e HS512, ou uma chave pública (PEM ou JWK) para RS, PS, ES e EdDSA.
- Alterne o cabeçalho e o payload entre JSON e Claims: Claims lista cada claim com o seu significado e mostra os claims de tempo como datas.
- Abra a aba Codificar para escrever um cabeçalho e um payload e assiná-los com um segredo ou uma chave privada (PEM PKCS#8 ou JWK). Nada dessa aba é salvo, compartilhado ou adicionado ao histórico.
Exemplos
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
O payload desse token:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
A assinatura dele é verificada com o segredo your-256-bit-secret.
Bom saber
- Decodificar não é verificar: o payload é apenas codificado, não criptografado, e qualquer pessoa pode lê-lo.
- Seu servidor deve verificar a assinatura antes de confiar em qualquer claim.
- Um token com o algoritmo
nonenão é assinado, então qualquer pessoa poderia tê-lo criado. - Trate tokens em uso como senhas. Prefira tokens expirados ou de teste ao colar um aqui.
- Um JWKS colado é pesquisado pelo
kiddo token, e um JWK único é usado como está. A página nunca busca um conjunto de chaves no emissor do token. - Um segredo HMAC mais curto que o seu hash (32, 48 ou 64 bytes) pode ser adivinhado, por isso a página avisa. Um segredo pode ser lido como texto UTF-8 ou como Base64URL.
O que é um JWT?
Um JSON Web Token são três partes Base64URL unidas por pontos: um cabeçalho com o algoritmo de assinatura, um payload com claims (para quem é o token, quando expira) e uma assinatura. Qualquer pessoa pode ler as duas primeiras partes; só a assinatura prova que o token veio de quem tem a chave.
Perguntas frequentes
Decodificar um token é o mesmo que verificá-lo?
Não. Decodificar apenas lê o conteúdo, que não é criptografado. Verificar confere a assinatura com a chave, e o seu servidor deve fazer isso antes de confiar em qualquer claim.
O que significam exp, nbf e iat?
exp é quando o token expira, nbf o momento antes do qual não é válido e iat quando foi emitido, tudo em segundos desde 1970. Esta ferramenta os compara com o relógio do seu dispositivo.
É seguro colar um token real aqui?
O token é decodificado no seu navegador e nunca enviado aos nossos servidores, e esta página não mostra anúncios. Ainda assim, trate tokens ativos como senhas: prefira tokens expirados ou de teste.