1
resposta

[Dúvida] bcrypt compare sempre da false(erro)

bom, fiz tudo certo na minha app, e quando fiz bcrypt.compare, sempre da erro, diz que so a senha ta errada, sendo que a senha e a mesma do cliente onde ta a propiedade senha, preciso que de certo pra gerar o token, mas sempre da erro mesmo a senha estando certa

meu codigo: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, John!

Analisando o trecho de código que você compartilhou, parece que você está tentando comparar a senha fornecida no login (senhaDoLogin) com a senha armazenada associada à empresa (empres.senha). No entanto, há um pequeno erro na linha onde você faz a comparação:

const clienteAutenticado = await bcrypt.compare(empres.senha, senhaDoLogin);

A função compare do bcrypt recebe primeiro o valor da senha não criptografada (a senha que o usuário está tentando usar para logar) e em segundo lugar o hash da senha que está armazenado no banco de dados. Portanto, a ordem dos argumentos está invertida.

A linha correta deveria ser:

const clienteAutenticado = await bcrypt.compare(senhaDoLogin, empres.senha);

Isso deve resolver o problema da comparação sempre retornar false. Além disso, certifique-se de que a senha que está sendo passada para a função compare não está sendo modificada de alguma forma antes da comparação e que o hash armazenado no banco de dados foi gerado corretamente com o bcrypt.

Espero que essa correção resolva o problema que você está enfrentando. Lembre-se de testar novamente após fazer a alteração para verificar se o comportamento está correto agora. Espero ter ajudado e bons estudos!