E aí, pessoal! Lucas aqui de São Paulo.
Ao implementar logins de usuários em aplicativos web modernos, JSON Web Tokens (JWT) são o padrão do setor. Mas vejo muitos desenvolvedores usando bibliotecas para lidar com JWTs sem entender o que realmente são.
As três partes de um JWT
Se você olhar para um JWT, verá que são apenas três strings de aparência aleatória separadas por pontos: `header.payload.signature`.O maior equívoco é que os JWTs são criptografados. Eles NÃO são. O cabeçalho e a carga útil são simplesmente codificados em Base64. Qualquer pessoa que interceptar o token pode decodificá-lo e ler sua carga útil (é por isso que você nunca deve colocar senhas ou informações confidenciais dentro deles!).
A terceira parte, a assinatura, é o que o torna seguro. Isso prova que o token foi gerado pelo seu servidor e não foi adulterado.
Tokens de decodificação para depuração
Quando estou depurando problemas de autenticação de front-end, sempre uso a ferramenta local JWT Decoder. Eu colo o token e ele me mostra instantaneamente a carga JSON para que eu possa verificar se as funções do usuário e os carimbos de data e hora de expiração estão corretos. Como a ferramenta é executada inteiramente no navegador, meus tokens de sessão nunca são expostos a terceiros.Entenda suas ferramentas e você escreverá um código muito melhor!