Я уже реализовал Facebook-Login на своем сайте с помощью экспресс-писем и паспортов-Facebook. Он работает хорошо (я получаю профиль поля), но проблема в том, что я не получаю электронную почту. Я получаю сообщение об ошибке:Паспорт-facebook не получает по электронной почте
email : profile.emails[0].value,
TypeError: Не удается прочитать свойство «0» неопределенных
Мой код:
passport.use('facebook',new FacebookStrategy({
clientID : config.facebook.id,
clientSecret : config.facebook.secret,
callbackURL : '/auth/facebook/callback',
profileFields : ['id', 'displayName', 'emails','photos']
}, function(accessToken, refreshToken, profile, done) {
User.findOne({provider_id: profile.id}, function(err, user) {
if(err) throw(err);
if(!err && user!= null) return done(null, user);
var user = new User({
provider_id : profile.id,
name : profile.displayName,
email : profile.emails[0].value,
photo : profile.photos[0].value,
});
user.save(function(err) {
if(err) throw err;
return done(null, user);
});
});
}));
Было бы здорово, если бы кто-то может помочь мне с решением моей проблема :)
вы пробовали протоколирование объект профиля, чтобы увидеть, что он содержит? – soulcheck
Я попробовал это сейчас. Профиль не содержит сообщений электронной почты ... – jcabello
Что произойдет, если вы не используете параметр profileFields? – soulcheck