passport.js'yi kullanarak, yolu bu yolla yazdım, böylece MongoDb belgesine userDoc
erişebilmem için. Ancak, bu şekilde yapılırken ... passport.serializeUser()
asla çağrılmayacak ve req
nesnesi user
eksik olacaktır. Ben öyle yazarsanızPassport serializeUser(), bu authenticate() geri çağırma ile çağrılmıyor
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);
});
Ama req.user
olması gerektiği gibi vardır:
auth.route('/auth/facebook/callback')
.get(passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('http://localhost:9000/users')
});
Ben passport.serializeUser
denir yere bu yapıp user
req
bulunduğunu ve ben de sahip olabilir nasıl mongoDb nesnesine erişim?
Vay! Anladığım kadarıyla bu, Passport.js web sitesinde doğru bir şekilde belgelenmemişti. Passport.authenticate() ifadesinin req.login() işlevini çağırdığını, ancak özel bir geri bildirim sağlamasının manuel olarak çağrılmasının gerekli olmadığını fark ettiler. Dokümanlar çok belirsiz! – OzzyTheGiant