passport-facebook Strategy.parseErrorResponse

问题描述 投票:1回答:1

我正在尝试设置Facebook身份验证,每当调用回调函数时我都会收到错误,它会在/node_modules/passport-facebook/lib/strategy.js:196:12中抛出一个Strategy.parseErrorResponse

没有消息告诉我出了什么问题。我检查以确保我的clientID和秘密是正确的(因为我看到如果他们错了可能会发生这种情况)。

    passport.use(new FacebookStrategy({
        clientID: myId,
        clientSecret: mySeceret,
        callbackURL: callBackUrl,
        passReqToCallback : true
    }, (req, accessToken, refreshToken, profile, done) => {
        process.nextTick(() => {
            if (req.user) {
            done(null, req.user);
            if (!req.user.facebookId) {
                req.user.facebookId = profile.id;

                req.user.save().then(() => {
                    done(null, req.user);
                });
            } else {
                done(null, req.user);
            }
        } else {
            User.find({where: {facebookId: profile.id}}, function (err,user) {
                return done(err, user);
            });
        }
    });
}));

我的路线

app.get('/auth/facebook', passport.authenticate('facebook', { scope: 'email' }));
app.get('/auth/facebook/callback',
    passport.authenticate('facebook', { failureRedirect: '/login' }),
    function (req, res) {
        res.redirect('/');
});

全栈

Error
    at Strategy.parseErrorResponse (/node_modules/passport-facebook/lib/strategy.js:196:12)
    at Strategy.OAuth2Strategy._createOAuthError (/node_modules/passport-oauth2/lib/strategy.js:376:16)
    at /node_modules/passport-oauth2/lib/strategy.js:166:45
    at /node_modules/oauth/lib/oauth2.js:191:18
    at passBackControl (/node_modules/oauth/lib/oauth2.js:132:9)
    at IncomingMessage.<anonymous> (/node_modules/oauth/lib/oauth2.js:157:7)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:188:7)
    at endReadableNT (_stream_readable.js:975:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9)

此外,看起来密钥正在传递,因为它包含我可以看到正在调用的路由/ auth / facebook / callback?code =“someReallyLongKey”

node.js login passport.js passport-facebook
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.