Использование bcrypt.compare всегда возвращает false - PullRequest
0 голосов
/ 30 декабря 2018

Я храню пользователей в таблице MySQL, называемой пользователями, и пароль шифруется с помощью bcrypt

Все идет хорошо во время шифрования пароля, но во время сравнения пароля с вводом пользователя,всегда ложно, и я не знаю, как это исправить

Водная жизнь без объяснения причин

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 04 января 2019

SQL CREATE TABLE IF NOT EXISTS Users ( user_id int primary key auto_increment not null, first_name varchar(30), last_name varchar(100), pass varchar(50) ) character set utf8; Проблема была с текстом столбца, который был настроен максимум на 50 символов, я изменил его на текст

0 голосов
/ 30 декабря 2018

В вашем примере кода не показано, куда вы звоните bcrypt.hash и храните пароль, поэтому трудно сказать, в чем проблема.

Если вы отлаживаете это локально, вы должны знать, чтопароль на самом деле был;попробуйте взять хеш пароля из базы данных и запустить bcrypt.compare('the real password', 'password hash from db') в консоли узла и посмотреть, что он возвращает.

Проблема почти наверняка:

1) Вы неправильно сохраняете хеш пароля.

2) Вы сравниваете хэш пароля с неправильной вещью.

3) Он работает нормально, и вы просто не вводите правильный пароль.

Трюкбудет выяснить, какой из них.

...