如何使用 express 确定节点 js 中的特定 successRedirect?
How to determine specific successRedirect in node js using express?
我对 passport.authenticate 中的 successRedirecting 有疑问。
我在 nodejs 中使用 passport.js 和本地策略并表示用户登录并尝试创建特定的 successRedirect 路由。
比如我用用户id登录:gpaul(假装登录成功),那么successRedirect route就是'?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
})
);
执行上述代码后,地址为空白,
localhost: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
不会为空(与您的实现不同)
我对 passport.authenticate 中的 successRedirecting 有疑问。 我在 nodejs 中使用 passport.js 和本地策略并表示用户登录并尝试创建特定的 successRedirect 路由。
比如我用用户id登录:gpaul(假装登录成功),那么successRedirect route就是'?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
})
);
执行上述代码后,地址为空白, localhost: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
不会为空(与您的实现不同)