2017-02-14 65 views
0

我有一個關於成功在passport.authenticateRedirecting的問題。 我在nodejs中使用passport.js和本地策略,併爲用戶登錄表示並嘗試制定特定的successRedirect路由。如何使用快速確定特定的successRedirect節點js?

例如,如果我使用用戶ID:gpaul(假裝成功登錄)登錄,那麼successRedirect路由就是'?channel = gpaul'。

我做像下面的代碼

var data_1 = {email:''}; 
app.post('/login', 
    function (req,res,next){ 
    req.flash("email"); 
    data_1.email = req.body.email; 
    console.log(data_1.email); 
    next(); 
    }, passport.authenticate('local-login', { 
    successRedirect : ('/status.html?channel='+ data_1.email), 
    failureRedirect : '/login', 
    failureFlash : true 
    }) 
); 

實現上面的代碼後,地址出來空白, 本地主機:4000 /通道= 如何我把data_1.email到successRedirect?

沒有任何人有任何的想法...? 請幫我看看這裏..

謝謝。

回答

2

嘗試使用Custom Callback

app.post('/login', function(req, res, next) { 
passport.authenticate('local-login', function(err, user, info) { 
    if (err) { return next(err); } 
    if (!user) { return res.redirect('/login'); } 
    return res.redirect('/status.html?channel='+ req.body.email); 
    })(req, res, next); 
}); 

在此實現,回調已經通過關閉訪問reqres對象。因此,email將不會是空的(不像你的實現)

+0

哇,你是我的生活救星! :) – paulc1111

+0

非常感謝你幫助我。 :) – paulc1111

+0

高興地幫助:) –