Decodificador de JWT
Funciona inteiramente no seu navegador. Seus arquivos e dados nunca saem do seu dispositivo.
- iat: 2018-01-18T01:30:22.000Z
Sobre esta ferramenta
Um JSON Web Token é formado por três segmentos codificados em Base64Url separados por pontos: um header que descreve o algoritmo de assinatura, um payload com as claims, e uma assinatura. O header e o payload são apenas codificados, não criptografados, então qualquer pessoa que tenha o token consegue lê-los. Esta ferramenta decodifica os dois instantaneamente. O formato está definido na RFC 7519.
O que eu vejo ao colar um token?
Ao colar um token você vê o header e o payload como JSON formatado, além de uma nota em linguagem simples para qualquer claim baseada em tempo que ele contenha. O header normalmente traz o algoritmo de assinatura (alg) e o tipo do token. O payload traz o que quer que o emissor tenha colocado ali: claims padrão como emissor (iss), sujeito (sub), audiência (aud), expiração (exp), data de emissão (iat), não-antes-de (nbf), além de qualquer claim personalizada que o seu provedor adicione, como roles ou scopes. Para exp, iat e nbf, a ferramenta também converte o timestamp Unix para uma data legível e indica se o token está expirado ou ainda não é válido, que costuma ser o jeito mais rápido de entender por que uma API rejeitou o token. Para decodificar, um token precisa ter exatamente três partes separadas por ponto, com JSON válido codificado em Base64Url nas duas primeiras; qualquer outra coisa é reportada como um JWT inválido.
Meu token é enviado para algum lugar?
Não. A decodificação acontece inteiramente no seu navegador: o token é interpretado e separado localmente, e nada é transmitido pela rede. Isso torna seguro colar tokens de acesso reais aqui, incluindo os de um ambiente de produção, sem se preocupar com eles passando por terceiros.
Esta ferramenta verifica a assinatura?
Não, e isso importa. A ferramenta só decodifica o header e o payload, o que é apenas uma decodificação Base64Url seguida de uma leitura de JSON. Ela não checa a assinatura, então não consegue dizer se um token é genuíno ou se foi adulterado. Decodificar mostra o que um token afirma; verificar prova que essas afirmações são confiáveis, e essa checagem precisa acontecer contra a chave de assinatura do emissor, normalmente num servidor ou numa biblioteca de backend que tenha acesso a ela. Se você está tentando entender por que um token foi rejeitado, decodificar aqui é uma forma rápida de ver se as claims fazem sentido, mas uma decodificação bem-sucedida não é o mesmo que uma assinatura válida.
Para entender como os três segmentos se encaixam e o que cada claim padrão significa, a introdução a JWT da Auth0 é uma referência útil ao lado da RFC.