2016-04-18 7 views
9

ノードアプリケーションを作成しています。また、Facebookでパスポートを使用しようとすると、確認コールバックが実行されません(何も記録されません)。どんな助けもありがとう。Passport 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); 
+0

は、なぜこれがまだ答えていないですか? – aditya

+0

私は同じ問題を抱えています。あなたはそれを修正したことがありますか? –

答えて

0

私は同じ問題を持っていたし、それはgraph.facebook.comとDNSの問題でした。これにより、passport-facebookの後ろにあるpassport-oauth2モジュールがFBトークンを取得できなくなります。 verifyコールバックはスキップされます。あなたの問題がjsのと同じである場合は、テストすることができ

はここスニペット:

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

次に、あなたの問題は、実際にDNSによって引き起こされる:このコードはに似た何かを返す

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

場合問題。

あり、そのDNSの問題を固定する複数の方法がありますが、私のための最も簡単なのは、手動で私のMac上で私の/private/etc/hostsファイルを編集することでした:

ステップ1:ゲットgraph.facebook.comのIP:

nslookup graph.facebook.com 

ステップ2:はあなた/private/etc/hostsを更新します。

sudo vim /private/etc/hosts 

ファイルの末尾に新しい行を追加するだけです(例: graph.facebook.com)

ステップ3:テストdns.lookup('graph.facebook.com', console.log)再び:これはあなたの問題を修正

null '157.240.8.18' 4 

希望:これが解決されました 場合は、そのコマンドが同様の何かを返す必要があります。

乾杯、

ニック

関連する問題