Ich habe das Facebook-LogIn bereits in meiner Website mit Express js und Pass-Facebook implementiert. Es funktioniert gut (ich bekomme Feldprofil), aber das Problem ist, dass ich die E-Mail nicht bekomme. Ich erhalte eine Fehlermeldung:Passport-facebook bekommt keine E-Mail
email : profile.emails[0].value,
Typeerror: kann nicht lesen Eigenschaft ‚0‘ undefinierten
Mein Code:
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);
});
});
}));
Es wäre toll, wenn mir jemand mit der Lösung helfen könnte meinen Problem :)
haben Sie versucht, das Profil Objekt anmelden, um zu sehen, was es enthält? – soulcheck
ich habe es jetzt versucht. Profil enthält keine E-Mails ... – jcabello
Was passiert, wenn Sie den ProfilFields-Parameter nicht verwenden? – soulcheck