如何使用快速确定特定的successRedirect节点js?
问题描述:
我有一个关于成功在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?
没有任何人有任何的想法...? 请帮我看看这里..
谢谢。
答
尝试使用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);
});
在此实现,回调已经通过关闭访问req
和res
对象。因此,email
将不会是空的(不像你的实现)
哇,你是我的生活救星! :) – paulc1111
非常感谢你帮助我。 :) – paulc1111
高兴地帮助:) –