ruby on rails - रेल एपीआई के लिए omniauth और फेसबुक का उपयोग कर उपयोगकर्ता प्रमाणीकृत करें?




ruby-on-rails facebook (2)

मैं एक रेल एपीआई बना रहा हूं और उपयोगकर्ता को Omniauth पहचान का उपयोग करके प्रमाणित करने के लिए सफलतापूर्वक एक तरीका बनाया है।

हम बस auth_key और पासवर्ड में गुज़रने वाले क्लाइंट से ऑथ / पहचान / कॉलबैक पर पोस्ट करते हैं।
सर्वर तब एक डोरकीपर टोकन देता है जिसे उपयोगकर्ता तब से ऐप तक पहुंचने और स्वयं की पहचान करने के लिए उपयोग करता है।

यह चित्र इस प्रकार दिखाता है:

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

Omniauth पहचान के साथ एक साधारण रेल ऐप पर, आप बस ऑथ / फेसबुक पर कॉल करेंगे, लेकिन अगर हम क्लाइंट में इस से एक लिंक डालते हैं, तो यह सर्वर और सर्वर को कॉल करता है तो लॉग करता है:

INFO -- omniauth: (facebook) Request phase initiated.

ऐप को एक आईडी और सीक्रेट के साथ फेसबुक में सही तरीके से स्थापित किया गया है, तो शायद लॉग-इन प्रॉम्प्ट सर्वर पर वापस आ रहा है?

प्रमाणीकरण को शांत करने के बावजूद मैं भ्रमित हो रहा हूं। किसी भी मदद की सराहना की सराहना की!


इस समस्या को हल करने के लिए मैंने पाया सबसे अच्छा संसाधन उपग्रह निर्माता github repo में रेल उदाहरण उदाहरण है: https://github.com/sahat/satellizer/tree/master/examples/server/ruby

आपका उपग्रह कोड कोड AuthController.authenticate विधि को कॉल करता है। यह विधि प्रत्येक प्रदाता के लिए ओथ मॉडल कक्षाओं का उपयोग करती है जो आपके द्वारा एक्सेस टोकन में प्राप्त कोड को परिवर्तित करने के लिए करती है। फिर अपने उपयोगकर्ता वर्ग में आप उस उपयोगकर्ता को पुनर्प्राप्त कर सकते हैं जो प्रदाता से मिली जानकारी से मेल खाता है।

अंत में नियंत्रक विधि क्लाइंट को jwt टोकन देता है।

मेरे मामले में नियंत्रक भाग थोड़ा अलग है क्योंकि मैं मेल / पासवर्ड प्रमाणीकरण के लिए भी उपयोग करता हूं लेकिन मैं वही ओथ कक्षाओं की प्रतिलिपि बनाता हूं और यह एक आकर्षण की तरह काम करता है।






omniauth