Cursos / Informática para Internet / Desenvolvimento Backend / Aula
Agora, já conhecendo um pouco sobre o JWT, iniciaremos a implementação incrementando a rota de login.
No arquivo 'usuario.rota.js' existe a rota de login, que está retornando uma mensagem de sucesso ou falha. No entanto, a ideia é que ao dar tudo certo, seja retornado um token.
Para isso acontecer, antes de mais nada é preciso instalar duas bibliotecas. No terminal, digite:
npm i jsonwebtoken
e
npm i dotenv
Após isso, importe a biblioteca JWT através da linha:
const jwt = require("jsonwebtoken");
Logo em seguida, modifique a rota de login para em caso de sucesso retornar um token. Sua rota deverá ficar como abaixo:
router.post("/login", async (req, res) => {
const email = req.body.email;
const senha = req.body.senha;
const usuario = await Usuario.findOne({
where: {
email: email,
},
});
if (usuario && (await bcrypt.compare(senha, usuario.senha))) {
const payload = {
sub: usuario.id,
iss: "imd-backend",
aud: "imd-frontend",
email: usuario.email,
};
const token = jwt.sign(payload, process.env.ACCESS_TOKEN_SECRET)
res.json({ accessToken: token })
} else {
res.status(403).json({ msg: "usuário ou senha inválidos" })
}
});
Essa variável de ambiente 'ACCESS_TOKEN_SECRET' precisa ser definida. Para isso, com o auxílio da biblioteca dotenv, crie um arquivo oculto '.env' e atribua um valor aleatório a ela.
Exemplo de definição:
ACCESS_TOKEN_SECRET=e74e41e5561cd01e0d2b4e0a3183f8473e5288dc43c44fe32879f61a890b2491a6484be7ea2615a49ad52476d6dd3894a0b1201e7224de07b44fb1dc590ab181
Por fim, é preciso carregar o dotenv na inicialização. Então, no arquivo 'index.js' adicione a seguinte linha nas importações:
require('dotenv').config()
Versão 5.3 - Todos os Direitos reservados