小编Cor*_*row的帖子

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

我有一个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)

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

javascript facebook oauth node.js facebook-graph-api

9
推荐指数
1
解决办法
772
查看次数

在mongoose query.exec()中正确的错误处理

我已经深入研究了Mongoose文档,但我仍然无法找到我应该如何处理错误的信息query.exec().

var query = User.findOne({_id: userId});

    var promise = query.exec(function(err) {
        if (err) {
            res.json(err);
            return;
        }
    });
    promise.then(function(user) {
        res.json(user.name);
    });
Run Code Online (Sandbox Code Playgroud)

当我传递不正确的userId时,我将Unhandled rejection CastError: Cast to ObjectId failed错误打印到控制台.

我认为res.json(err)后面的return语句将足以正确处理错误并阻止它在控制台中显示,但事实并非如此.我该怎么做呢?

mongoose node.js

3
推荐指数
1
解决办法
4298
查看次数