Node.js 通过passportjs返回facebook id不';与facebook用户id不匹配

Node.js 通过passportjs返回facebook id不';与facebook用户id不匹配,node.js,express,facebook-graph-api,passport.js,passport-facebook,Node.js,Express,Facebook Graph Api,Passport.js,Passport Facebook,我使用passportjs facebook策略获取用户信息。但是passportjs返回的用户id与实际的facebook用户id不匹配,并且facebook用户名未定义。如何获取实际的facebook用户id和用户名 passport.use(new FacebookStrategy({ clientID: config.get('facebook.clientID'), clientSecret: config.get('facebook.clientSec

我使用passportjs facebook策略获取用户信息。但是passportjs返回的用户id与实际的facebook用户id不匹配,并且facebook用户名未定义。如何获取实际的facebook用户id和用户名

passport.use(new FacebookStrategy({
        clientID: config.get('facebook.clientID'),
        clientSecret: config.get('facebook.clientSecret'),
        callbackURL: config.get('facebook.callbackURL'),
        passReqToCallback: true,
        // profileFields: ['id', 'email', 'first_name', 'last_name']
    },
    function(req, accessToken, refreshToken, profile, done) {
        console.log(profile);...........
........................................
//console.log的输出(配置文件)

_json:Object{name:“Tareq Ahamed”,id:“1720360918026935”} _原始:“{”名称“:”塔里克·阿哈迈德“,”id“:”1720360918026935“}” 显示名称:“Tareq Ahamed” 性别:未定义 id:“1720360918026935” 名称:对象{familyName:undefined,givenName:undefined,middleName:undefined} profileUrl:未定义 提供商:“facebook” 用户名:未定义


//但是facebook的实际用户id是100001591295237

无法获取用户的“真实”id或用户名。无论如何,你都不需要它们,你可以用你得到的ID识别返回的用户——它被称为“应用程序范围ID”,每个应用程序的ID将保持不变

如果您希望在请求中包含更多数据,而不仅仅是id和名称,则必须使用字段参数,如文档所示: