Я создаю приложение express4, используя стратегию FB паспорта, а также местные логины. Я собираю электронную почту пользователя, чтобы связать локальные и учетные записи FB.Facebook API больше не поставляет электронные письма для входа пользователя в систему с использованием паспорта Стратегия FB
Внезапно (примерно в то время, когда я создал новое тестовое приложение в FB), я больше не получал электронные письма от входа в FB. Учитывая, что я тестирую свою учетную запись, проблем не должно быть. Вот стратегия FB:
passport.use(new FacebookStrategy({
clientID: ids.facebook.clientID,
clientSecret: ids.facebook.clientSecret,
callbackURL: ids.facebook.callbackURL,
enableProof: false,
profileFields: ['id', 'displayName', 'emails']
},
function(accessToken, refreshToken, profile, done) {
console.log(profile)
User.findOne({ username: profile.emails[0].value }, function (err, user) {
if(err) {
return done(err)
}
if (user) {
// if doesn't contain facebook id, add it
user.update({facebookId : profile.id}, function(err, user) {
if (err) {
return done(err)
}
})
return done(null, user)
}
if (! user) {
User.create({username: profile.emails[0].value, facebookId: profile.id}, function(err, user) {
if(err) {
return done(err, null)
}
return done(null, user)
})
}
});
}
));
Линия, которая отображает профиль теперь возвращает это:
GET /auth/facebook 302 0.981 ms - 0
{ id: 'xxxxxxxxxxxxxxx',
username: undefined,
displayName: 'Dan Donaldson',
name:
{ familyName: undefined,
givenName: undefined,
middleName: undefined },
gender: undefined,
profileUrl: undefined,
provider: 'facebook',
_raw: '{"id":"xxxxxxxxxxxxxxx","name":"Dan Donaldson"}',
_json: { id: 'xxxxxxxxxxxxxxx', name: 'Dan Donaldson' } }
Кто-нибудь видел эту проблему? FB больше не предоставляет электронные письма для входа в систему для основного приложения или тестового приложения. У меня такое чувство, что это проблема FB, а не проблема node/js/express/passport, так как никаких изменений кода в отношении к этому не было связано ....
Я бы предположил, что это не ошибка Facebook. И код не запрашивает поле электронной почты. – WizKid
прочитайте журнал изменений, если что-то изменится - мои предположения будут «декларативными полями», найдите это в журнале изменений. – luschn
вопрос разрешен с добавлением спецификации поля на маршруте: –