Я использую библиотеку yortus 'async/await node.js для настройки системы входа/регистрации на основе паспорта с использованием хэшей паролей с использованием bcrypt-nodejs.Настройка bcrypt для работы с паспортом и асинхронным ожиданием Библиотека Node.js
В то время как остальная часть системы настроена и работает нормально, у меня возникают проблемы при получении bcrypt-nodejs
к хорошо работать с yortus' async/await
потому что Bcrypt хеширования подписи функции требует двух обратных вызовов, и это не ясно, как использовать его с async/await
. ..
hash(data, salt, progress, cb)
data - [REQUIRED] - the data to be encrypted.
salt - [REQUIRED] - the salt to be used to hash the password.
progress - a callback to be called during the hash calculation to signify progress
callback - [REQUIRED] - a callback to be fired once the data has been encrypted.
error - First parameter to the callback detailing any errors.
result - Second parameter to the callback providing the encrypted form.
async/await
звонок ...
let generateHash = async((password) => {
let salt = await(bcrypt.genSaltAsync(10)) // this works
let result = await(bcrypt.hash(password, salt, null)
return result // returns NULL
})
Выход:
Unhandled rejection No callback function was given.
запись базы данных (MongoDB) при попытке подписаться с помощью системы:
{
"_id" : ObjectId("581bf7031386f167a09851b9"),
"username" : "vjk2005",
"password" : ""
}
Имя пользователя проходит, но пароль NULL
. Я пробовал несколько перестановок и комбинаций без успеха, любая помощь приветствуется.
Я на самом деле с помощью Bluebird в promisify в Bcrypt LIB. Я резервирую гармонию и babel как последнее средство. – vjk2005