Node.js 节点Facebook Passport仅返回某些字段,而不考虑发送范围

Node.js 节点Facebook Passport仅返回某些字段,而不考虑发送范围,node.js,passport.js,passport-facebook,Node.js,Passport.js,Passport Facebook,我目前正试图通过使用koapasport和koajs2 一切正常,我可以登录什么都可以,但不管我在我只得到的范围内发送什么: { passport: { user: { id: '1015401', username: undefined, displayName: 'John Doe', name: [Object], gender: undefined, profileUrl: undefine

我目前正试图通过使用
koapasport
koajs2

一切正常,我可以登录什么都可以,但不管我在我只得到的范围内发送什么:

{ passport:
   { user:
      { id: '1015401',
        username: undefined,
        displayName: 'John Doe',
        name: [Object],
        gender: undefined,
        profileUrl: undefined,
        provider: 'facebook',
        _raw: '{"name":"John Doe","id":"1015401"}',
        _json: [Object] } } }
我试着加上

scope:['email','public_profile']
这似乎在facebook上起作用,因为我可以看到我的应用程序请求的信息,所有的东西都在那里


但当我点击ok并被重定向回我的应用程序时,我又丢失了一些东西,比如
profile\u pic
字段和
email
字段。关于如何取回这些字段的任何信息都将非常感谢。我想在github页面上打开一个问题,但有些问题可以追溯到2013年,似乎没有得到很好的维护。

我也遇到了同样的问题,通过执行以下操作解决了它:

passport.js
中添加带有
profileFields
的行:

passport.use(new FacebookStrategy({
        clientID: clientID,
        clientSecret: clientSecret,
        callbackURL: callbackURL,
        profileFields: ['id', 'name', 'emails']
      },
“电子邮件”
将返回一个电子邮件数组,因此获取第一个值:

newUser.facebook.email = profile.emails[0].value;
让我们知道如果这对你有效,也许这对其他人也会有帮助