登录node.js后,如何根据mysql用户行中的值创建自定义的successRedirect页面?像这样:
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
表中的实列谢谢你的建议
最佳答案
您的strategy用于验证用户身份,然后将该用户发送到完成的回调中。如果找到的用户在返回时具有userlevel属性,则您可以像完成操作一样通过req.user.userlevel
访问它。