Попытка изменить req.user
не кажется наилучшей практикой (если это вообще сработает).Я считаю, что req.user
всегда должен быть идентичным пользователю в вашей базе данных.
Однако вы можете использовать passReqToCallback
, чтобы использовать req в обратном вызове Passport, и установить req.session
соответственно.
passport.use(new FacebookStrategy({
clientID: FACEBOOK_APP_ID,
clientSecret: FACEBOOK_APP_SECRET,
callbackURL: "/auth/facebook/callback",
passReqToCallback: true
},
function(req, accessToken, refreshToken, profile, cb) {
req.session.profile = profile;
return cb(null, profile);
}
));
После этого вы должны не забыть удалить req.session.profile
в любом запросе, где req.user
не определен, чтобы не сохранять устаревшую profile
информацию о вышедших из системы пользователях.
app.get("*", function(req, res, next){
if(req.session.profile && !req.user)
delete req.session.profile;
next();
});
Все это не проверено, но я считаю, что это может сработать для вас.