Cursos / Informática para Internet / Desenvolvimento Backend / Aula

arrow_back Aula 13 - Autenticando usuários na API

Criptografando a senha no banco de dados


Atualmente, visitando a tabela do banco de dados dos usuários, é visível que a senha é armazenada diretamente, ou seja, o conteúdo do campo "senha" no banco é exatamente igual ao que foi digitado pelo usuário do sistema. Isso não é usual, visto que é uma informação confidencial, devendo ser de conhecimento apenas do dono da senha.

Criptografando a senha

Para resolver esse problema, é importante que antes de ser armazenada no banco, a senha seja encriptada. Então, recorremos à biblioteca bcrypt.

Para instalar a biblioteca, utilize o comando:

npm install bcrypt

Agora, antes de salvar o usuário no banco, deve-se criptografar a senha digitada por ele.

Navegando até a rota post, no arquivo de 'usuario.rota.js', percebemos que as informações estão sendo armazenadas exatamente como veio na requisição. Para criptografar a senha da maneira correta, acompanhe a aula e observe como são feitas as alterações.

Ao final, sua rota deve ficar como a rota abaixo:

router.post("/", async (req, res) => {
  const senha = req.body.senha;
  const salt = await bcrypt.genSalt(10);
  const senhaCriptografada = await bcrypt.hash(senha, salt);
  const usuario = { email: req.body.email, senha: senhaCriptografada };
  const usuarioObj = await Usuario.create(usuario);
  res.json({ msg: "Usuário adicionado com sucesso!", userId: usuarioObj.id });
});

Versão 5.3 - Todos os Direitos reservados