JWT, que significa JSON Web Token, é um padrão de autenticação amplamente utilizado em APIs. sendo um modelo flexível e seguro, o JWT é uma escolha popular para a implementação de autenticação em APIs, oferecendo segurança e eficiência na transmissão de dados sensíveis.
processo de autenticação
antes de fazer a request para a API, o cliente precisa enviar uma request de autenticação, passando as credenciais (login, por exemplo) via POST no body da request. a API valida e processa as credenciais. Se estiverem corretas, gera um token JWT e o retorna no body de uma response com status 200 OK.
armazenamento do token
após concluir o processo de autenticação, o cliente armazena o JWT (stored token) e, nas próximas requests, irá enviá-lo via header, por authorization parameters.
validação do token
se o token estiver correto, a request é concluída. caso contrário, a API retorna erro 401 Unauthorized.
expiração e refresh token
como medida de segurança, o token expira depois de um determinado tempo. é possível implementar um refresh token, que solicita um novo token quando o atual expira, evitando a necessidade de enviar as credenciais novamente.
anatomia de um JWT
um JWT é composto por três partes: HEADER, PAYLOAD e VERIFY SIGNATURE.
- HEADER: contém metadados sobre o token, como o tipo e o algoritmo de criptografia.
- PAYLOAD: contém as informações sobre o usuário e quaisquer metadados adicionais necessários.
- VERIFY SIGNATURE: é uma assinatura digital que garante a integridade do token e verifica se ele foi alterado durante a transmissão.