passport-facebook - Ich kann keine about_me- und E-Mail-Profilfelder erhalten

Ich versuche, mit passport-facebook ein Anmeldesystem für meine App einzurichten. Alles läuft gut, bis auf die 2 Felder, die von der Anfrage undefiniert werden.

Ich werde meinen gesamten Code für den Anmeldevorgang posten, da ich hier nicht viele Informationen darüber gesehen habe, obwohl es in der Sache viele Fragen gibt.

Dies ist die Konfiguration in app.js

var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;

passport.serializeUser(function(user, done) {
  done(null, user.facebookId);
});
passport.deserializeUser(function(id, done) {
  routes.findUserById(id, function(err, user) {
    done(err, user);
  });
});

passport.use(new FacebookStrategy({
    clientID: FACEBOOK_APP_ID,
    clientSecret: FACEBOOK_APP_SECRET,
    callbackURL: FACEBOOK_CALLBACK_URL,
    profileFields: ['id', 'displayName', 'link', 'about_me', 'photos', 'email']
  },
  routes.handleLogin
));

mit Pass initialisieren und Sitzung

app.use(passport.initialize());
app.use(passport.session());

Ist die Bearbeitung der Anfrage abgeschlossen? Beachten Sie, dass ich den richtigen Bereich verwende

app.get('/auth/facebook', passport.authenticate('facebook', { scope: ['user_about_me', 'email'] }));
app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/', failureRedirect: '/error' }));

und das ist meine benutzererstellungsfunktion im router

exports.handleLogin = function(accessToken, refreshToken, profile, done) {
  db.userCatalog.findOne({ facebookId: profile.id }, function(err, existingUser) {
    if (err) {
      return done(err);
    }
    else {
      if(existingUser) {
        console.log('User: ' + existingUser.name + ' found and logged in!');
        done(null, existingUser);
        } 
      else {
        new db.userCatalog({
        name: profile.displayName,
        facebookId: profile.id,
        link: profile.link,
        picture: profile.photos[0].value,
        bio: profile.about_me,
        email: profile.email
        }).save(function (err, data) {
          if (err) {
            return done(err);
          }
          else {
            console.log('New user: ' + data + ' created and logged in!');
            done(null, data);
          }
        });
      }
    }
  });
};

und das Ergebnis beim Anlegen eines neuen Benutzers nach Abschluss des Anmeldevorgangs:

Ich bin mir sicher, dass dies ein Anfängerfehler ist, aber ich kann es einfach nicht selbst herausfinden ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage