node.js - Passport ReferenceError:未定义错误
问题描述
我想做一个登录表单,我做了几乎所有的修复,但如果我注册成功并且我想登录,如果密码正确或不正确,它就会抛出:
UnhandledPromiseRejectionWarning: ReferenceError: err is not defined
所以我查了一下,错误消息是这样bcrypt.compare(password, user.password, (err, isMatch => {
的:如果用户名错误或不存在,它只是用错误消息重定向我,就像我编程它一样。完整的控制器/passport.js 文件
module.exports = function (passport) {
passport.use(
new LocalStrategy({ usernameField: 'username' }, (username, password, done) => {
// Matching
User.findOne({ username: username })
.then(user => {
if (!user) {
return done(null, false)
}
bcrypt.compare(password, user.password, (err, isMatch => {
if (err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, flase, { message: 'Passwort nicht korrekt' })
}
}))
})
})
)
passport.serializeUser( function (user, done) {
done(null, user.id);
});
passport.deserializeUser( function (id, done) {
User.findById(id,function (err, user) {
done(err, user);
});
});
}
我将此模块包含在我的 routes.js 中 // 登录
router.get('/', forwardAuthenticated, (req, res) => {
res.render('login/index');
})
router.post('/', (req, res, next) => {
passport.authenticate('local', {
successRedirect: '../admin',
failureRedirect: '/login'
})(req, res, next)
})
应用程序.js
require('./controller/passport')(passport);
app.use(passport.initialize());
app.use(passport.session());
我试图删除错误,但没有定义错误,我查找了护照文件,但我没有找到任何东西,有什么想法吗?我使用快递、护照、本地护照、猫鼬
解决方案
推荐阅读
- android - 应用程序在前台时收到的推送通知与应用程序在后台时收到的推送通知不同
- mysql - MySQL 创建表和更改(添加)表查询
- php - 创建 laradock_mysql_1 ... 错误
- javascript - Ajax 获取变量到 php 以从 SQL 中选择
- forms - 访问:在加载之前从用户友好的表单中过滤查询结果
- python - 子进程通信挂起
- jquery - 如何仅在访问者第一次访问我的网站时显示弹出窗口?
- javascript - ERROR 错误:未捕获(承诺中):XMLHttpRequest.onreadystatechange 处的错误错误
- css - 我怎样才能使这个主导航居中
- r - 将 R 中的数据框转换为“Python 字典”