Ошибка BCrypt Недопустимые аргументы: строка, объект - PullRequest
0 голосов
/ 29 апреля 2020

Я занимаюсь разработкой веб-приложения на основе NodeJS и ReactJS, в котором я пытаюсь иметь sh пароли для нескольких маршрутов, один для регистрации и другой для смены пароля.

Для этого цель, я генерирую соль вне обоих маршрутов, поэтому они оба используют одну и ту же соль следующим образом:

const salt = bcrypt.genSalt(10);

Теперь внутри маршрутов генерируется hash следующим образом:

user.password = await bcrypt.hash(newPassword, salt);

Но когда я запускаю это, выдает следующую консольную ошибку:

Недопустимые аргументы: строка, объект

Операция хеширования работала нормально, когда я генерировал соль внутри отдельных маршрутов. В чем может быть причина?

1 Ответ

0 голосов
/ 29 апреля 2020

Полагаю, вы звоните bcrypt.hash вот так

await bcrypt.hash(newPassword, 10);

Это означает, что вы проходите количество раундов, а не соль. Если вы хотите генерировать соль вне вызова, вы можете сделать что-то вроде этого

const salt = bcrypt.genSaltSync(10);

, а затем использовать его в bcrypt.hash.

...