2014-04-25 14 views
5

में अनुरोध टोकन ढूंढने में विफल रहा है, मैं अपनी साइट पर एक ट्विटर कनेक्ट सेट अप करने के लिए पासपोर्ट-ट्विटर का उपयोग कर रहा हूं। उपयोगकर्ता 'लॉगिन' पर क्लिक करके या 'नया आइटम जोड़ें' पर क्लिक कर सकते हैं। 2 के बीच फर्क सिर्फ इतना है कि अगर वे पर नया आइटम जोड़ने के लिए क्लिक करें, मोडल विंडो एक बार वे में लॉग इन खोलने के लिए माना जाता है हैपासपोर्ट-ट्विटर - त्रुटि: सत्र

बटन पर पता करने के लिए वे क्लिक करें मैं req.session.referrer में यूआरएल की दुकान:।

// route for twitter authentication and login 
app.get('/auth/twitter', function(req, res, next){ 
    req.session.referrer = req.url; 
    console.log(req.session); 
    passport.authenticate('twitter')(req, res, next); 
}); 

app.get('/auth/twitter/new', function(req, res, next){ 
    req.session.referrer = req.url; 
    console.log(req.session); 
    passport.authenticate('twitter')(req, res, next); 
}); 

// handle the callback after twitter has authenticated the user 
app.get('/auth/twitter/callback', function(req, res, next){ 
    var options = { 
      successRedirect : '/twitter-user/signin', 
      failureRedirect : '/' 
     }; 

    console.log(req.session); 
    if (req.session.referrer && req.session.referrer.indexOf('new') > -1) options.successRedirect = '/twitter-user/new'; 

    passport.authenticate('twitter', options)(req, res, next) 
}); 

सब कुछ मेरे विकास के वातावरण में ठीक काम करता है, लेकिन एक बार ऑनलाइन मैं इस त्रुटि संदेश मिलता है: एक्सप्रेस

500 Error: Failed to find request token in session 
at Strategy.OAuthStrategy.authenticate (/app/node_modules/passport-twitter/node_modules/passport-oauth1/lib/strategy.js:142:54) 
... 

मेरी सेटिंग्स ट्विटर में ठीक तरह से स्थापित कर रहे हैं। अनुरोध के लिए:

{ cookie: 
    { path: '/', 
     _expires: null, 
     originalMaxAge: null, 
     httpOnly: true }, 
    passport: {}, 
    referrer: '/auth/twitter' } 

कॉलबैक के लिए: यहाँ है कि मैं क्या लॉग के साथ मिलता है उपडोमेन समस्या (http://example.com बनाम http://www.example.com) की वजह से

{ cookie: 
    { path: '/', 
     _expires: null, 
     originalMaxAge: null, 
     httpOnly: true }, 
    passport: {} } 

शायद यह हो सकता है के रूप में मैं नहीं स्थानीय रूप से पीबी है। मैं इसे कैसे ठीक कर सकता हूं?

बहुत धन्यवाद

संपादित करें: मेरी API कुंजी इस तरह की स्थापना की है (इस ट्यूटोरियल के अनुसार: http://scotch.io/tutorials/javascript/easy-node-authentication-twitter):

passport.use(new TwitterStrategy({ 

    consumerKey  : configAuth.twitterAuth.consumerKey, 
    consumerSecret : configAuth.twitterAuth.consumerSecret, 
    callbackURL  : configAuth.twitterAuth.callbackURL 

},function(token, tokenSecret, profile, done) { 
    ... 
    }); 
+0

के बारे में त्रुटियां मिलेंगी, जहां आपके पास टूर ट्विटर एपीआई कुंजी सेटअप है? – Biba

+0

मैंने जानकारी के साथ अपना प्रश्न संपादित किया। कृपया ऊपर देखें – Spearfisher

उत्तर

1

मैं एक ही त्रुटि मिल गया लेकिन इसे हल .. और यहाँ क्या हो रहा है मेरी मुद्दा था और समाधान।

वास्तविकता, यह मेरे रीडायरेक्ट यूआरएल "http: // localhost/auth/twitter/callback" को पसंद नहीं आया। मैंने इसे "http: // 127.0.0.1/auth/twitter/callback" में बदल दिया। मेरे वास्तविक कोड में, मुझे इसे स्थानीयहोस्ट के रूप में रखना था या मुझे लापता टोकन

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