【发布时间】:2019-01-26 10:08:04
【问题描述】:
我正在使用带有本地策略的护照。但是当credential 不匹配或(user is not exit is DB)时,我想发送消息和状态
这里是代码
router.js
const passport = require('passport');
const passportConfig = require('../passport')
const passportSignIn = passport.authenticate('local', { session: false });
router.route('/login',)
.post(passportSignIn,controller.login)
关于控制器文件
login: async (req, res, next) => {
console.log(req.body);
res.json({status:200})
}
passport.js
passport.use(new LocalStrategy({
usernameField: 'email'
}, async (email, password, done) => {
const user = await db.User.findOne({where: {email: email}});
if (!user) {
return done(null, false,{message:"No user exit"});
}
const isMatch = await bcrypt.compare(password, user.dataValues.password);
console.log(isMatch, 'isMatch');
if (!isMatch) {
return done(null, false);
}
// Otherwise, return the user
done(null, user);
}))
客户端代码
当用户单击login 按钮时,它会首先转到/login 路径,然后转到passportSignIn 函数或以下函数。
`new LocalStrategy({
usernameField: 'email'
}, async (email, password, done) => {`
现在,如果找不到用户,我想在客户端上发送此消息作为响应(“无用户退出”)
return done(null, false,{message:"No user exit"});
【问题讨论】:
标签: javascript jquery node.js sequelize.js passport.js