2015-10-14 4 views
5

पर फेसबुक ओथ, फेसबुक को website URL की आवश्यकता है, जहां वेबसाइट ओथ अनुरोधों को सत्यापित करने के लिए होस्ट की जाती है। फेसबुक को वैध callback URLs की आवश्यकता होती है, मूल रूप से उन URL की एक सूची जो फेसबुक सुरक्षित रूप से ओथ टोकन को पास कर सकती है।क्लाउड 9

यहाँ, मेरी Cloud9 पर्यावरण बनाम अपने स्थानीय वातावरण में अंतर नहीं है के विषय में फेसबुक Oauth स्थापना:

स्थानीय होस्ट:

  • वेबसाइट यूआरएल: http://localhost:3000
  • कॉलबैक URL: http://localhost:3000/auth/facebook/callback

Cloud9:

  • वेबसाइट यूआरएल: http://myapp-cireficc.c9.io/
  • कॉलबैक URL: http://myapp-cireficc.c9.io/auth/facebook/callback

मेरे स्थानीय होस्ट सेटअप बस ठीक काम करता है। हालांकि, जब मैं Cloud9 पर मेरे अनुप्रयोग चलाने, मैं निम्नलिखित त्रुटि फेसबुक से मिलती है:

को देखते हुए यूआरएल अनुप्रयोग विन्यास द्वारा अनुमति नहीं है: एक या अधिक दिए गए यूआरएल की एप्लिकेशन की सेटिंग द्वारा अनुमति नहीं है। यह वेबसाइट यूआरएल या कैनवास यूआरएल से मेल खाना चाहिए, या डोमेन ऐप के डोमेन में से एक का सबडोमेन होना चाहिए।

redirect_uri=http%3A%2F%2Fmyapp-cireficc.c9.io%3A80%2Fauth%2Ffacebook%2Fcallback

:

यह जिसका अर्थ है इन दोनों मानकों में से एक गलत हैं ... और डिबगिंग का एक सा के बाद, यह फेसबुक की तरह लग रहा है कि इस कॉलबैक URL का उपयोग करने की कोशिश कर रहा है

और डिकोडिंग कि अधिक पठनीय वर्णों में के बाद, हमने:

http://myapp-cireficc.c9.io:80/auth/facebook/callback

यह इस यादृच्छिक की तरह लगता है: 80 कॉलबैक URL, जो मुझे लगता है कि जब Oauth अनुरोध बाहर भेज दिया जाता है, यह संलग्न किया जा रहा है बनाता है जोड़ा जा रहा है, और फेसबुक सिर्फ कर्तव्यनिष्ठा यह प्रतिक्रिया कॉलबैक करने के लिए संलग्न है , जो अब गलत है।क्योंकि : 80 जोड़ा जा रहा है, उम्मीद और वास्तविक कॉलबैक अलग:

उम्मीद: http://myapp-cireficc.c9.io/auth/facebook/callback

वास्तविक: http://myapp-cireficc.c9.io:80/auth/facebook/callback

यह कुछ होने के लिए मुझे लगता है क्लाउड 9 जोड़ रहा है जब यह अनुरोध भेजता है (शायद उनके डोमेन नाम कैसे स्थापित किए जाते हैं?)। क्लाउड 9 पर फेसबुक ओथ काम करने के लिए मैं क्या कर सकता हूं?

नोट: Cloud9 के env.PORT8080 है, और env.IP0.0.0.0 है। ऐसा लगता है कि : कॉलबैक में 80 से आ रहा है, लेकिन मुझे नहीं पता कि इस मुद्दे को कैसे प्राप्त किया जाए।

दिलचस्प बात यह है कि मेरे पास स्टेजिंग पर्यावरण हैरोकू पर स्थापित है, और हेरोोकू में यह समस्या नहीं है। मैं आसानी से http://myapp-staging.herokuapp.com और सही कॉलबैक यूआरएल का उपयोग कर फेसबुक ओउथ तक आसानी से पहुंच सकता हूं।

+1

हम्म, यह दिलचस्प है। हालांकि आप अभी भी इस वेबसाइट को प्राप्त करने के लिए वेबसाइट URL में 80 जोड़ सकते हैं। – Mutahhir

+0

@ मुट्टाहिर हाँ मुझे नहीं पता कि यह क्यों हो रहा है। मैंने कोशिश की थी कि जब मैंने पहली बार समस्या का एहसास किया, लेकिन सर्वर लटक रहा था। यह पता चला है कि मुझे डेटाबेस के सेटअप के लिए कुछ याद आ रहा था, इसलिए 'उपयोगकर्ता ढूंढें' फ़ंक्शन का समय समाप्त हो गया। किसी भी मामले में, यूआरएल में '80' लगाकर काम किया, तो मुझे लगता है कि यह सौदा का बड़ा नहीं है! –

उत्तर

1

एक ही समस्या थी: क्लाउड 9 यूआरएल में पोर्ट (: 80) जोड़ना, फिर इसे वैध ओएथ रीडायरेक्ट यूआरआई में मेरे लिए तय किया गया।

1

@ एंथनी ग्रोव का जवाब मेरे लिए काम नहीं करता था।

हालांकि, क्लाउड 9 यूआरएल में पोर्ट (: 8080) जोड़ना, फिर इसे वैध ओएथ रीडायरेक्ट यूआरआई में जोड़ना मेरे लिए तय किया गया है।

docs से: Please note that 8080, 8081, and 8082 are the only available ports on a hosted Cloud9 workspace.

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