पर फेसबुक ओथ, फेसबुक को 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.PORT
8080
है, और env.IP
0.0.0.0
है। ऐसा लगता है कि : कॉलबैक में 80 से आ रहा है, लेकिन मुझे नहीं पता कि इस मुद्दे को कैसे प्राप्त किया जाए।
दिलचस्प बात यह है कि मेरे पास स्टेजिंग पर्यावरण हैरोकू पर स्थापित है, और हेरोोकू में यह समस्या नहीं है। मैं आसानी से http://myapp-staging.herokuapp.com
और सही कॉलबैक यूआरएल का उपयोग कर फेसबुक ओउथ तक आसानी से पहुंच सकता हूं।
हम्म, यह दिलचस्प है। हालांकि आप अभी भी इस वेबसाइट को प्राप्त करने के लिए वेबसाइट URL में 80 जोड़ सकते हैं। – Mutahhir
@ मुट्टाहिर हाँ मुझे नहीं पता कि यह क्यों हो रहा है। मैंने कोशिश की थी कि जब मैंने पहली बार समस्या का एहसास किया, लेकिन सर्वर लटक रहा था। यह पता चला है कि मुझे डेटाबेस के सेटअप के लिए कुछ याद आ रहा था, इसलिए 'उपयोगकर्ता ढूंढें' फ़ंक्शन का समय समाप्त हो गया। किसी भी मामले में, यूआरएल में '80' लगाकर काम किया, तो मुझे लगता है कि यह सौदा का बड़ा नहीं है! –