Decodificador JWT: cabeçalho, payload e expiração
Decodifique JSON Web Tokens (JWT) instantaneamente. Visualize cabeçalho e payload com segurança.
Assinatura
A verificação da assinatura requer uma chave secreta.
Como este decodificador de JWT lê um token
Um JSON Web Token reúne três partes em uma única string: cabeçalho, payload e assinatura. Este decodificador separa um token codificado nessas três partes, converte o cabeçalho e o payload de volta em JSON legível e extrai o algoritmo, a data de emissão e a data de expiração, para que você possa inspecionar um token sem escrever código.
Cabeçalho, payload e assinatura
Um token é dividido em três partes por dois pontos: cabeçalho.payload.assinatura. As duas primeiras partes são JSON codificado em base64url, então decodificá-las é uma operação reversível, não uma criptografia. O cabeçalho informa o algoritmo de assinatura, o campo alg, por exemplo HS256 ou RS256, e o tipo do token. O payload carrega os claims: um identificador de assunto, campos próprios da aplicação e, geralmente, iat (momento de emissão) e exp (momento de expiração) armazenados em segundos Unix. A assinatura é um valor criptográfico calculado a partir do cabeçalho e do payload; confirmá-la exige a chave secreta ou privada que a criou, então ler o conteúdo de um token é uma operação diferente de verificar sua autenticidade. Alguns tokens são assinados com alg igual a none e têm apenas duas partes, cabeçalho.payload; o decodificador também aceita essa forma mais curta e deixa o segmento de assinatura vazio. O base64url se diferencia do base64 comum por usar um hífen e um sublinhado no lugar do sinal de mais e da barra, e costuma dispensar o sinal de igual usado como preenchimento.
Exemplo prático
Cole um token como o abaixo e ele se separa em três segmentos coloridos, depois o cabeçalho e o payload aparecem como JSON formatado.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTAyOTM4NDc1IiwibmFtZSI6IkJlYXRyaXogQ29zdGEiLCJpYXQiOjE3MTYzNzkyMDAsImV4cCI6MTcyNDE1NTIwMH0.TpekWUiCNHG5vFG-cwNw5Eb-43g
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "6102938475",
"name": "Beatriz Costa",
"iat": 1716379200,
"exp": 1724155200
}
O selo Algorithm mostra HS256, lido do cabeçalho. O valor iat corresponde a 22 de maio de 2024 e o valor exp a 20 de agosto de 2024; como essa data já passou, o selo Status mostra EXPIRED. Nada disso acontece em um servidor: a decodificação roda no navegador, e a ferramenta nunca verifica se a assinatura é autêntica, porque não tem acesso à chave que a criou.