我怎样才能使自定义的successRedirect页面登录后在节点,JS基于来自mysql用户行的值?类似的东西:Nodejs自定义登录后成功重定向页面
passport.use(new LocalStrategy(
function(username, password, done) {
var strQuery = "SELECT * FROM users WHERE username='"+username+"' and password_text='"+password+"'";
connection.query(strQuery, function(err, users){
if (err) { return done(err); }
if (typeof users[0] == 'undefined' && users.length == 0) {
return done(null, false, { message: 'Incorrect username or password' });
}
if (password != users[0].password_text) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, users[0]);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done,) {
var strQuery = "SELECT * FROM users WHERE id='"+id+"'";
connection.query(strQuery, function(err, users){
return done(null, users[0]);
});
});
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
function(req, res, next) {
if (req.user.userlevel > 3) { // Here is my problem I dont't know how get userlevel value
return res.redirect('/index1');
} else {
res.redirect('/index2');
}
});
我不知道为什么我的代码不工作... userlevel
是真实列users
表 感谢您的任何建议
请查看参数化查询,而不是连接您的SQL字符串。 – Paul 2014-11-02 02:17:43
我遇到同样的问题。如果你设法解决这个问题,也许你可以发布完成的代码作为答案? – Meelah 2016-04-26 15:49:27