2012-07-13 19 views
12

का उपयोग करके एपीआई और एप्लिकेशन प्रमाणीकरण मेरे पास डेस्कटॉप एप्लिकेशन और मोबाइल एप्लिकेशन दोनों हैं। मैं "डिवाइस" दोनों के लिए एक ही रेल आवेदन का उपयोग करना चाहता हूं। दूसरे शब्द में, मैं चाहता हूं कि मोबाइल एप्लिकेशन डेस्कटॉप एप्लिकेशन पर सामग्री का अनुरोध करे।डेविस, डोर्किपीर और ओएथ 2 टोकन

मैं प्रमाणीकरण (ईमेल + पासवर्ड) के लिए डेविस का उपयोग करता हूं। मैंने अपने मोबाइल एप्लिकेशन के लिए ओउथ 2 टोकन जेनरेट करने के लिए डेस्कटॉप ऐप पर डोरकीपर को कार्यान्वित किया है।

यहाँ मेरी प्रश्न हैं:

मैं ताकि उन्हें सुरक्षित करने के लिए मेरे डेस्कटॉप आवेदन नियंत्रकों में before_filters सेट हैं।

  • मुझे यकीन नहीं है कि प्रमाणीकृत होने और मेरे संरक्षित नियंत्रकों तक पहुंचने के लिए मोबाइल एप्लिकेशन को ओएथ 2 टोकन को डेविस के साथ साझा करना चाहिए?

असल में, यह डोरकीपर है जो doorkeeper_for :all कोड के साथ मेरे नियंत्रकों में मोबाइल टोकन की जांच करनी चाहिए। लेकिन ऐसा करने के लिए मुझे तैयार सुरक्षा before_filter :authenticate_user! ...

क्या मुझे ओथ टोकन को भी तैयार करना चाहिए?

मुझे गलतफहमी है कि कैसे मोबाइल अनुप्रयोगों को devise और OAuth2 प्रोटोकॉल के साथ प्रमाणित करना चाहिए?

Thx

उत्तर

9

यह पुराना है, लेकिन अभी तक कोई जवाब नहीं है।

अनिवार्य रूप से डेविस और डोरकीपर एक ही काम कर रहे हैं, डेविस सत्रों का उपयोग करके प्रमाणित करता है (या टोकन ऑथ अगर आपने इसे सक्षम किया है) जबकि डोरकीपर प्रत्येक अनुरोध में भेजे गए ओथ टोकन के साथ प्रमाणित करता है।

आप जो करना चाहते हैं वह आपके आवेदन को दो एक्सेस पॉइंट्स में विभाजित करना है, डेविस का उपयोग करके एक नियमित डेस्कटॉप एक्सेस और डोरीपीपर का उपयोग करने वाली एक एपीआई है। केवल नियमित डेस्कटॉप नियंत्रकों के लिए डेविस मार्ग सक्षम करें और केवल एपीआई नियंत्रकों के लिए डोरकीपर मार्ग सक्षम करें।

अपने एपीआई एप्लिकेशन कंट्रोलर में, आप User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token जैसे कुछ होने के लिए current_user को ओवरराइड कर सकते हैं। यह डेविस प्रमाणीकरण के तरीके से भी मेल खाएगा।

वैकल्पिक रूप से, यदि आपके एपीआई को ओएथ का उपयोग नहीं करना है, तो आप डेविस की टोकन_authenticable कॉन्फ़िगरेशन का उपयोग कर सकते हैं, जो ओथ के बेयरर टोकन्स के समान सुविधाएं प्रदान करता है।

+0

हमें डेस्कटॉप और मोबाइल दोनों पर टोकन-आधारित प्रमाणीकरण का उपयोग क्यों नहीं करना चाहिए? – lakesare

0

मैं अगर मैं अपने प्रश्न समझ में आ यकीन नहीं है लेकिन द्वारपाल अपने नियंत्रक पूरी तरह से अवरोधित करता है। यदि आपके नियंत्रक में doorkeeper_for :all है तो Devise प्रमाणीकरण के माध्यम से कोई पहुंच संभव नहीं है।

उदाहरण के लिए एपीआई नियंत्रक की तरह, आपको OAuth2 के माध्यम से अपना डेटा साझा करने के लिए एक अलग नियंत्रक की आवश्यकता होगी। फिर आप डेटा का अनुरोध कर सकते हैं उदा। protocol://myapp:1234/ressource?access_token=thetoken के माध्यम से।

क्या आपने यही पूछा है? अन्यथा कृपया स्पष्टीकरण दें :)

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