来自facebook的特定用户信息使用passport-facebook

时间:2016-04-27 19:29:45

标签: node.js authentication passport-facebook

我正在使用passport-facebook for OAuth并从facebook获取用户信息。但我得到的只是一些基本信息(即名字,姓氏)。我想要像userEmail和friendList这样的信息。

我目前的Facebook策略是 -

passport.use(new FacebookStrategy({
      clientID: configAuth.facebookAuth.appID,
      clientSecret: configAuth.facebookAuth.appSecret,
      callbackURL: configAuth.facebookAuth.callbackUrl
    },
    function(accessToken, refreshToken, profile, done) {
      process.nextTick(function() {
        User.findOne({'facebook.id': profile.id}, function(err, user) {
          if(err)
            return done(err);
          if(user)
            return done(null, user);
          else {
            var newUser = new User;
            console.log(profile);
            newUser.facebook.id = profile.id;
            newUser.facebook.token = accessToken;
            newUser.facebook.name = profile. displayName;
            newUser.save(function(err) {
              if(err)
                throw err;
              return done(null, newUser);
            })
          }
        })
      })
    }
  ));

有人能告诉我如何获得用户的电子邮件或朋友列表。 在此先感谢!!

1 个答案:

答案 0 :(得分:1)

如果您需要电子邮件和user_friends,则必须在请求facebook-auth时将其添加到范围。我想添加以下代码可以帮助你:

app.get('/auth/facebook', passport.authenticate('facebook', { scope : ['email,user_friends'] }));