ओवरराइड करें मैं रेलवे 4 ऐप में ओमनीउथ के साथ डेविस 3.5 का उपयोग कर रहा हूं। मैंने फेसबुक के साथ एकीकरण बनाया है जो उपयोगकर्ता को अपने फेसबुक खाते को मेरे ऐप से कनेक्ट करने की अनुमति देता है। वर्तमान में जब उपयोगकर्ता कनेक्ट बटन पर क्लिक करता है, तो उन्हें /user/auth/facebook
पर भेजा जाता है और फिर कॉलबैक यूआरएल पर रीडायरेक्ट किया जाता है जो Omniauth उत्पन्न करता है: /user/auth/facebook/callback
। मैं कुछ मामलों में मैन्युअल रूप से इस कॉलबैक यूआरएल को ओवरराइड करना चाहता हूं - जिसका अर्थ है कि मैं इसे प्रारंभकर्ता में ओवरराइड नहीं करना चाहता - पूरी तरह से योग्य यूआरएल के साथ। उदाहरण के लिए, यदि कोई उपयोगकर्ता http://www.example.com/
पर शुरू होता है तो मैं http://app.example.com/user/auth/facebook/callback
के साथ डिफ़ॉल्ट कॉलबैक यूआरएल को ओवरराइड करना चाहता हूं।डेविस/ओमनीएथ डिफ़ॉल्ट कॉलबैक यूआरएल
मेरे ऐप में गतिशील सबडोमेन हैं और उपयोगकर्ता (लगभग) हमेशा सबडोमेन पर प्रमाणीकरण प्रक्रिया शुरू करेंगे। दुर्भाग्यवश ऐसा लगता है कि फेसबुक ओथ रीडायरेक्ट यूआरएल में वाइल्डकार्ड का समर्थन नहीं करता है, यही कारण है कि मैं यह पता लगाने की क्षमता चाहता हूं कि कोई उपयोगकर्ता उप डोमेन पर है या कॉलबैक यूआरएल को उस चीज़ पर एडजस्ट करें जिसे मैंने अपने फेसबुक एप पर श्वेतसूची में रखा है ताकि प्राधिकरण प्रक्रिया सफल होती है।
जो मैंने पढ़ा है, उससे यूआरएल सहायक omniauth_authorize_path
पैरामीटर के रूप में पारित होने के लिए अतिरिक्त तर्क स्वीकार करता है। मैं बहुत की तरह में एक कस्टम कॉलबैक पथ गुजर की कोशिश की है, लेकिन सफलता नहीं मिली:
user_omniauth_authorize_path(:facebook, callback_path: @custom_callback)
मैं भी redirect_url
और redirect_uri
को callback_path
बदलते की कोशिश की है, लेकिन कुछ भी काम करने के लिए लगता है। जब मैं जेनरेट किए गए लिंक को देखता हूं, तो इसमें वास्तव में यूआरएल में पैरामीटर के रूप में कॉलबैक शामिल होता है, लेकिन जब मैं लिंक पर क्लिक करता हूं, तो मुझे कस्टम कॉलबैक यूआरएल के बजाय डिफ़ॉल्ट कॉलबैक यूआरएल पर रीडायरेक्ट कर दिया जाता है।
मुझे उस सुविधा की भी आवश्यकता है :( – diogopms