2016-04-18 14 views
9

मैं एक नोड ऐप बना रहा हूं, और जब मैं फेसबुक के साथ पासपोर्ट का उपयोग करने का प्रयास करता हूं, तो सत्यापित कॉलबैक नहीं चलाता है (कुछ भी लॉग नहीं है)। किसी भी सहायता की सराहना की जाएगी।पासपोर्ट फेसबुक कॉलबैक सत्यापित करें

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 मॉड्यूल को रोकता है। verify कॉलबैक तब छोड़ दिया जाता है।

यदि आपकी समस्या js के साथ एक ही है परीक्षण कर सकते हैं यहाँ स्निपेट: इस कोड को कुछ इसी तरह रिटर्न के लिए

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

हैं:

{ 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 के कारण होता है मुद्दा।

वहाँ कि DNS समस्या को ठीक करने के कई तरीके हैं, लेकिन मेरे लिए सबसे सरल मैन्युअल पर अपने मैक मेरी /private/etc/hosts फ़ाइल को संपादित करने के लिए था: graph.facebook.com के आईपी प्राप्त करें::

चरण 1

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 

आशा इससे आपकी समस्या का निवारण करती है।

चीयर्स,

Nic

संबंधित मुद्दे