5
使用passport.js,我以此方式編寫路由,因此我可以訪問MongoDb文檔userDoc
。但是,這樣做時... passport.serializeUser()
將永遠不會被調用,並且req
對象將會丟失user
。Passport serializeUser()未通過此身份驗證()回調調用
auth.route('/auth/facebook/callback')
.get(function(req, res, next) {
passport.authenticate('facebook', function(err, userDoc, info) {
if (err) { return next(err); }
// I don't think !userDoc will ever happen because of mongo upsert
if (!userDoc) { return res.redirect('/login'); }
res.cookie('facebookPicUrl', userDoc.value.facebook.picture, {maxAge : 9999999,
httpOnly: false,
secure: false,
signed: false
});
res.redirect('http://localhost:9000/users')
})(req, res, next);
});
但如果我這樣寫吧,req.user
是有,因爲它應該是:
auth.route('/auth/facebook/callback')
.get(passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('http://localhost:9000/users')
});
我怎樣才能使這個地方passport.serializeUser
被調用,user
存在於req
我也有訪問mongoDb對象?
哇!據我瞭解,這在Passport.js網站上沒有記錄。他們說,passport.authenticate()調用req.login(),但我不知道如果提供自定義回調,它必須手動調用。文檔太模糊了! – OzzyTheGiant