Quer saber como criar e assinar um JSON Web Token (JWT) de forma simples e eficiente? Neste post curto, vamos explorar como usar a biblioteca jsonwebtoken
para autenticar usuários de forma segura.
Se quiser se aprofundar no funcionamento do JWT, confira este post detalhado sobre o tema.
O que fazer após o login?
Quando um usuário faz login na sua aplicação, é fundamental gerar e fornecer um JWT como resultado da autenticação. Este token será usado para validar todas as requisições subsequentes, garantindo que apenas usuários autenticados tenham acesso às rotas protegidas.
Instalando a biblioteca jsonwebtoken
O primeiro passo é instalar a biblioteca responsável por criar e assinar os tokens. Use o comando:
npm install jsonwebtoken
Com a biblioteca instalada, importe-a no seu código e configure uma chave secreta para assinar os tokens:
import jwt from 'jsonwebtoken';
const secretKey = 'secret';
Criando o payload do JWT
O payload do JWT é onde você define as informações que deseja armazenar no token. Esses dados podem incluir o ID único do usuário, nome, ou outros dados relevantes para sua aplicação.
Aqui está um exemplo básico:
const payload = {
sub: "1234567890",
name: "John Doe",
iat: 1516239022,
};
O campo sub
(subject) é comumente usado para armazenar o ID único do usuário, enquanto outros campos como name
e iat
ajudam a complementar as informações.
Assinando o JWT com expiração
Com o payload pronto, agora é hora de assinar o token usando a função sign()
da biblioteca jsonwebtoken
.
A função aceita três parâmetros principais:
- O payload com os dados do token.
- A chave secreta utilizada para criar a assinatura.
- As opções, onde você pode definir configurações como o tempo de expiração e o algoritmo de hash.
Veja um exemplo de como configurar o tempo de expiração do token:
const token = jwt.sign(payload, secretKey, {
expiresIn: '1h', // O token expira em 1 hora
});
console.log(token); // Token JWT assinado
O header do JWT pode ser customizado com as opções, como o algoritmo de hash. Por padrão, o algoritmo utilizado é o HS256, mas você pode alterá-lo conforme necessário usando a opção algorithm
.
Porém, neste exemplo, utilizamos apenas o payload
e a secretKey
para simplificar o processo.
Conclusão
Com este guia, você aprendeu como gerar e assinar um JWT utilizando a biblioteca jsonwebtoken
, incluindo a criação do payload e a configuração da expiração. Essa é uma solução simples e eficiente para autenticação segura.