最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

护照Facebook验证回叫未被调用

运维笔记admin11浏览0评论

护照Facebook验证回叫未被调用

护照Facebook验证回叫未被调用

我正在创建一个节点应用程序,当我尝试使用Facebook的护照时,验证回调不会运行(没有记录任何内容)。任何帮助,将不胜感激。

var express = require('express');
var routes = require('./routes/routes.js');
var layout = require('./routes/layout.js');
var facebook = require('./routes/facebook.js');
var editprof = require('./routes/editprof.js');
var app = express();
var vogels = require('vogels');
var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;
var configAuth = require('./config/auth');


app.use(passport.initialize());
app.use(passport.session());

...

passport.use(new FacebookStrategy({

    // pull in our app id and secret from our auth.js file
    clientID        : configAuth.facebookAuth.clientID,
    clientSecret    : configAuth.facebookAuth.clientSecret,
    callbackURL     : 'http://localhost:8080/auth/facebook/callback'

},

// facebook will send back the token and profile
function(token, refreshToken, profile, done) {
    console.log("TOKEN",token);
    // asynchronous
    process.nextTick(function() {
        console.log("TOKEN",token);
        console.log("ID", profile.id);
        return done(null, profile);

    });

}));

...

app.get('/auth/facebook', passport.authenticate('facebook'));
app.get('/auth/facebook/callback', facebook.callback);
回答如下:

我遇到了同样的问题,这是graph.facebook的DNS问题。这可以防止passport-oauth2背后的passport-facebook模块获取FB令牌。然后跳过verify回调。

你可以在这里测试你的问题是否与js片段相同:

const dns = require('dns')
dns.lookup('graph.facebook', console.log)

如果此代码返回类似于:

{ Error: getaddrinfo ENOTFOUND graph.facebook
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:73:26)
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'graph.facebook' }

那你的问题确实是由DNS问题引起的。

有多种方法可以修复DNS问题,但对我来说最简单的方法是在我的mac上手动编辑我的/private/etc/hosts文件:

第1步:获取graph.facebook的IP:

nslookup graph.facebook

第2步:更新您的/private/etc/hosts

sudo vim /private/etc/hosts

只需在文件底部添加一个新行(例如graph.facebook)

第3步:再次测试dns.lookup('graph.facebook', console.log):如果现在已经解决了,那么该命令应返回类似于:

null '157.240.8.18' 4

希望这可以解决您的问题。

干杯,

没什么

发布评论

评论列表(0)

  1. 暂无评论