javascript
  • node.js
  • passport-local
  • passport.js
  • 2014-11-01 145 views 0 likes 
    0

    我怎样才能使自定义的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表 感谢您的任何建议

    +0

    请查看参数化查询,而不是连接您的SQL字符串。 – Paul 2014-11-02 02:17:43

    +0

    我遇到同样的问题。如果你设法解决这个问题,也许你可以发布完成的代码作为答案? – Meelah 2016-04-26 15:49:27

    回答

    1

    strategy是你用什么来认证用户,然后将该用户发送给完成的回调。如果您找到的用户在返回时拥有userlevel属性,则可以像您一样通过req.user.userlevel访问它。

    +0

    感谢您的回答,我已经更新了代码请看看。我不知道还有什么需要解决这个问题... – Makromat 2014-11-02 01:46:43

    +0

    您的用户表中有哪些字段?这些应该作为用户的属性提供。 – Lbatson 2014-11-02 02:25:55

    相关问题