我是新來的護照,並試圖重新定向用戶到他們以前在Facebook上進行身份驗證後的頁面。我試圖在會話中設置一個「req.session.returnTo」屬性,但它在facebook/auth回調中一直消失(在該函數中的任何位置都會變成未定義)。我的方法有什麼問題?護照 - nodejs - 將用戶返回到上一頁之後Facebook的身份驗證
保護路線:
app.post('/api/recipebox', ensureAuthenticated, function (req, res) {
});
ensureAuthenticated:
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
req.session.returnTo = req.path;
res.redirect('/#!/login');
}
//Facebook/Passport.js回調:
app.get('/auth/facebook/callback', function (req, res, next) {
passport.authenticate('facebook', function (err, user, redirectURL) {
// console.log(' in the callback ');
if (err) {
console.log(err);
return res.redirect('/#!/login');
}
if (!user) {
return res.redirect('/#!/signup');
}
if (req.user) {
// console.log("==================== This is the user from routes.js", req.user);
res.cookie('user', JSON.stringify(user));
}
//actually storing the fact that they are logged in:
req.login(user, function (err) {
if (err) {
return res.redirect('/#!/login');
}
// console.log('=========== here!', user);
res.redirect(req.session.returnTo || '/#!');
req.session.returnTo = null;
});
})(req, res, next);
})