Nodejs自定义成功登录后重定向页面

Nodejs custom successRedirect page after login

本文关键字:重定向 登录 自定义 成功 Nodejs      更新时间:2023-09-26

登录节点后,如何根据mysql用户行的值,在js中创建自定义的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');
        }
    });

我不知道为什么我的代码不起作用。。。userlevelusers表中的实列感谢您的任何建议

您的策略是对用户进行身份验证,然后将该用户发送到done回调。如果您找到的用户在返回时具有userlevel属性,那么您将能够像您所做的那样通过req.user.userlevel访问它。