O usuário está vindo com a senhaHash undefined, mesmo no banco de dados estando correto, ao passar para a função verificaSenha(). O Erro que está dando na rota /usuario/login com metodo post:
Error: data and hash arguments required
at Object.compare (C:\xampp\htdocs\alura-nodeJS\blog-do-codigo-aula-0\node_modules\bcrypt\bcrypt.js:209:17)
at C:\xampp\htdocs\alura-nodeJS\blog-do-codigo-aula-0\node_modules\bcrypt\promises.js:29:12
at new Promise (<anonymous>)
at Object.module.exports.promise (C:\xampp\htdocs\alura-nodeJS\blog-do-codigo-aula-0\node_modules\bcrypt\promises.js:20:12)
at Object.compare (C:\xampp\htdocs\alura-nodeJS\blog-do-codigo-aula-0\node_modules\bcrypt\bcrypt.js:205:25)
at verificaSenha (C:\xampp\htdocs\alura-nodeJS\blog-do-codigo-aula-0\src\usuarios\estrategia-autenticacao.js:18:36)
at Strategy._verify (C:\xampp\htdocs\alura-nodeJS\blog-do-codigo-aula-0\src\usuarios\estrategia-autenticacao.js:38:13)
codigo
async function verificaSenha(senha, senhaHash) {
const senhaValida = await bcrypt.compare(senha, senhaHash);
if(!senhaValida) {
throw new InvalidArgumentError('E-mail ou senha inválidos');
}
}
passport.use(
new LocalStrategy({
usernameField: 'email',
passwordField: 'senha',
session: false
},
async (email, senha, done) => {
try {
const usuario = await Usuario.buscaPorEmail(email);
verificaUsuario(usuario);
console.log('AQUI', senha , ' || ', usuario.senhaHash, ' || ', usuario, ' || ', usuario.email);
await verificaSenha(senha, usuario.senhaHash);
done(null, usuario);
} catch(err) {
done(err);
}
})
)