Decodificar JWT não verifica a assinatura

Leia as declarações de um token sem confundir conteúdo legível com autenticação válida.

Leitura não é prova de autenticidade

Um JWT assinado normalmente tem três partes separadas por pontos. Cabeçalho e conteúdo costumam usar Base64url e podem ser lidos sem segredo. Qualquer pessoa pode escrever uma declaração de administrador em um token inventado. O serviço receptor precisa verificar assinatura e declarações relevantes antes de confiar nelas.

Confira segundos e fuso horário

exp, nbf e iat usam segundos desde a época Unix. Date do JavaScript espera milissegundos, então normalmente se multiplica por 1000 ao exibir a data. Confira o fuso apresentado. Alterar a exibição local não valida um token expirado; a tolerância de relógio é uma regra do servidor.

Use configuração confiável

Restrinja algoritmos e chaves conforme o provedor e valide emissor e público-alvo. Não aceite um algoritmo apenas porque o cabeçalho o pede. O decodificador vinculado funciona localmente e avisa que a assinatura não foi verificada. Use tokens de exemplo em chamados e evite capturas com credenciais. Tokens criptografados com cinco partes têm outra estrutura.

Ferramentas relacionadas

Fontes e documentação