2008-11-08 24 views
9

क्या किसी को किसी भी रत्न, ट्यूटोरियल या समाधान के बारे में पता है, जो उपयोगकर्ता को एक डोमेन में किसी वेबसाइट पर साइन इन करने और उसी सत्र में अन्य पार्टनर डोमेन तक पहुंच प्रदान करने में सक्षम बनाता है?मैं रेल का उपयोग कर एकाधिक डोमेन में उपयोगकर्ता सत्र कैसे साझा कर सकता हूं?

मेरे पास दो रेल एप्लिकेशन चल रहे हैं, चलिए उन्हें ऐप-ए और ऐप-बी कहते हैं। ऐप-ए में इसके साथ जुड़े डेटाबेस हैं, पंजीकरण को सक्रिय करते हैं और ऐप-A.com पर लॉगिन करते हैं। अब मैं उन सभी उपयोगकर्ताओं को ऐप- A.com खातों के साथ ऐप-B.com तक पहुंच देना चाहूंगा, बिना उन्हें पुनः पंजीकरण या मैन्युअल रूप से ऐप- B.com पर लॉगिन कर दूंगा।

किसी भी मदद के लिए अग्रिम धन्यवाद! - मार्क

उत्तर

5

आप दोनों ऐप्स में एक ही session_key सेट कर सकते हैं। एपीए पर्यावरण.आरबी सत्र_की में बदलें, जैसे

Rails::Initializer.run do |config| 
    ... 
config.action_controller.session = { 
    :session_key => '_portal_session', 
    :secret  => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415' 
    } 
    ... 
end 

ऐपबी में ऐसा ही करें। (एक ही रहस्य का उपयोग करना याद रखें)

अब आपने सत्र साझा किए हैं। आइए मान लें कि आप restfull_authentication का उपयोग करते हैं, जो एक सत्र चर सेट करता है जिसे उपयोगकर्ता_आईडी कहा जाता है। जब आप एपीए में प्रमाणीकृत करते हैं तो यह सत्र में user_id सेट करता है। अब, एपबी में आपको बस सत्यापित करना होगा कि सत्र में user_id मौजूद है या नहीं।

यह समग्र स्कीमा है, आप इस विचार का उपयोग करके और विस्तार कर सकते हैं।

+3

जो मैं कह सकता हूं उससे यह केवल तभी काम करेगा जब दोनों ऐप्स एक ही डोमेन पर हों? – gtd

+2

यह सही है, यह समाधान एकाधिक डोमेन पर काम नहीं करता है। – TuteC

1

यदि आप अपने अनुप्रयोगों के लिए एकल साइन-ऑन समाधान बनाना चाहते हैं तो मैं RubyCAS समाधान पर एक नज़र डालने की सलाह देता हूं। इसका उपयोग अन्य गैर-रेल अनुप्रयोगों के लिए सिंगल साइन-ऑन प्रदान करने के लिए भी किया जा सकता है साथ ही आप एलडीएपी या अन्य प्रमाणीकरण प्रदाताओं के साथ प्रमाणीकरण को एकीकृत कर सकते हैं।

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