node.js - 使用 Postgresql 的 Passport js 本地策略不起作用
问题描述
嗨,我再次发帖希望有人可以帮助我,这是我的问题,我正在使用 MVC 架构,所以我现在有 3 个文件夹控制器、模型和视图,我现在关注的是服务器部分,我想完成这项工作,但我不知道出了什么问题,我该怎么办,请帮忙。在我的模型中,我有
const findUserByEmail = (email) => {
return new Promise((resolve, reject) => {
try {
console.log("jqhhbsd"),
con.query(
' SELECT * FROM `personne_physique` WHERE `email` = $1 ', email,
function(err, rows) {
if (err) {
reject(err)
}
let user = rows[0];
resolve(user);
}
);
} catch (err) {
reject(err);
}
});
};
const comparePassword = (mot_de_passe, userObject) => {
return new Promise(async (resolve, reject) => {
try {
await bcrypt.compare(mot_de_passe, userObject.mot_de_passe).then((isMatch) => {
if (isMatch) {
resolve(true);
} else {
resolve(`The password that you've entered is incorrect`);
}
});
} catch (e) {
reject(e);
}
});
};
这是我的控制器,我使用这些需要 const user= require("../models")
常量护照=要求(“护照”);const LocalStrategy = require("passport-local").Strategy;
initializePassport : () => {
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'mot_de_passe',
passReqToCallback: true
},
async (req, email, mot_de_passe, done) => {
try {
await user.findUserByEmail(email).then(async (user) => {
if (!user) {
return done(null, false, req.flash("errors", `This user email "${email}" doesn't exist`));
}
if (user) {
let match = await user.comparePassword(mot_de_passe, user);
if (match === true) {
return done(null, user, null)
} else {
return done(null, false, req.flash("errors", match)
)
}
}
});
} catch (err) {
console.log(err);
return done(null, false, { message: err });
}
}));
}
最后这是我的路线
router.post('/login', passport.authenticate('local', {
failureRedirect: '/users/login',
}),
function(req, res) {
console.log('Authentication successful');
res.redirect('/login');
});
我也收到这条消息运行邮递员“消息”:“未知身份验证策略“本地””。
请如果您有任何想法可以帮助我与我分享。
解决方案
推荐阅读
- docker - 如何使用柯南包创建 docker 映像
- reporting-services - 比较报表生成器中的两个字段并返回“是”或“否”的值
- mediawiki - PluggableAuth 扩展如何在不向用户显示表单的情况下接收 $_POST 隐藏数据?
- python - 在字符串中使用变量?
- c++ - 将 Protobuf 转换为数据库模式
- typescript - 如何使用 Typescript 在 Composition API 中正确声明静态引用?
- python - 如何决定在两核机器中为 Celery 使用什么并发性(用于 API 请求和数据库查询绑定)
- python - 有没有办法优化这个功能?
- c++ - 如何有效地查找 QAbstractTableModel::data 中的项目?
- google-sheets - Google 电子表格 API 不适用于 Vercel 上的 api/POST,但适用于本地