javascript
  • node.js
  • passport-local
  • passport.js
  • 2014-11-01 188 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

    相關問題