passport-facebook-token返回InternalOAuthError:验证令牌时无法获取用户配置文件

Cor*_*row 9 javascript facebook oauth node.js facebook-graph-api

我有一个iOS应用程序,我使用Facebook API登录,我得到一个访问令牌作为响应.现在我想使用此令牌来验证我的后端服务器上的用户.

我正在为Passport.js使用passport-facebook-token策略.

 var FacebookTokenStrategy = require('passport-facebook-token');

 module.exports = function(app) {
      app.use(passport.initialize());
      app.use(passport.session());

      passport.use(new FacebookTokenStrategy({
        clientID: '32424222424024',
        clientSecret: '3292e42148264c2817523232446187',
        callbackURL: "http://localhost:3000/auth/facebook/callback"
      },

      function(accessToken, refreshToken, profile, done) {
        User.findOne({ facebookId: profile.id }, function (err, user) {
            console.log("facebook");
            return done(err, user);
        });
      }   
      ));

    app.get('/auth/facebook',
        passport.authenticate('facebook-token'),
        function (req, res) {
            res.send(req.user? 200 : 401);
        }
    );
 };
Run Code Online (Sandbox Code Playgroud)

但是当我调用http:// localhost:3000/auth/facebook?access_token = my_token_here时出现以下错误:

InternalOAuthError:无法在C:\ app\www\app \node_modules\passport-facebook-token\lib\index.js:152:32在passBackControl(C:\ app\www\app \node_modules\oauth \)获取用户配置文件lib\oauth2.js:123:9)IncomingMessage.(C:\ app\www\app \node_modules\oauth\lib\oauth2.js:143:7)在emitNadableNT的IncomingMessage.emit(events.js:166:7)的emitNone(events.js:72:20)处(_stream_readable.js:905:12)在process._tickCallback(node.js:388:17)的nextTickCallbackWith2Args(node.js:474:9)

我缺少应用配置和/或身份验证实施中的哪些步骤?

cha*_*avy 4

首先,检查您的 ClientId 和 Client Secret,然后检查您是否选择了正确的应用程序来通过 Postman(或类似的)测试您与 Facebook 的连接。
就我而言,问题在于为另一个应用程序生成令牌
在此输入图像描述