Мне нужна помощь в использовании passport.authenticate (), когда имя пользователя зашифровано с использованием библиотеки NPM bcrypt js.
Например, когда я создаю пользователя, я шифрую имя пользователя перед использованием паспорта. js для создания и сохранения пользователя в MongoDB. Затем в моем маршруте для входа я передаю passport.authenticate («local») в качестве промежуточного программного обеспечения, которое выполняет все проверки по имени пользователя и паролю.
В этом сценарии имя пользователя на самом деле является зашифрованной строкой, есть ли способ использовать passport.authenticate для проверки переданного имени пользователя и зашифрованной строки?
Части моего кода, которые составьте маршрут регистрации и входа в систему.
userParam.username = bcrypt.hashSync(userParam.username);
userModel.create(new userModel(userParam), userParam.password , (error) => {
if (error) {
response.Error = error;
return Promise.resolve(response);
}
});
//Save user
passport.authenticate('local')(req, res, function () {
req.session.save((error) => {
if (error) {
response.Error = error;
return Promise.resolve(error);
}
});
});
маршрут входа в систему.
app.get('/api/user/login', passport.authenticate('local'), function (req, res) {
req.session.save((err) => {
if (err) {
return res.json({ message: "Failed to sign in", err });
}
res.json({ status: "Signed In", authenticated: req.isAuthenticated(), user: req.user, session: req.session });
});
});