【问题标题】:facebook id return by passportjs doesn't match with facebook user idpassportjs 返回的 facebook id 与 facebook 用户 id 不匹配
【发布时间】:2023-03-08 06:21:01
【问题描述】:

我使用 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(profile)的输出

_json:对象{名称:“Tareq Ahamed”,ID:“1720360918026935”} _raw:"{"name":"Tareq Ahamed","id":"1720360918026935"}" 显示名称:“塔雷克·艾哈迈德” 性别:未定义 编号:“1720360918026935” 名称:对象 {familyName:未定义,givenName:未定义,middleName:未定义} profileUrl:未定义 提供者:“脸书” 用户名:未定义

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

【问题讨论】:

    标签: node.js express facebook-graph-api passport.js passport-facebook


    【解决方案1】:

    无法获取用户的“真实”ID 或用户名。无论如何您都不需要它们,您可以使用您获得的 ID 来识别回访用户 - 它称为“App Scoped ID”,每个应用都将保持不变。

    如果您想要请求中的其他数据而不仅仅是 id 和名称,则必须使用文档中的 fields 参数:https://developers.facebook.com/docs/graph-api/using-graph-api#fields

    【讨论】:

      猜你喜欢
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多