2012-09-25 30 views
7

मेरे पास सत्रों के आसपास एक गैर-अद्वितीय (अन्य लोगों ने इसे हल किया होगा) जारी किया है।रेल सत्र सत्र_स्टोर एकाधिक डोमेन

परिदृश्य यह है कि मेरे पास 5 शीर्ष स्तर के डोमेन (domain_a, domain_b, domain_c, domain_d, domain_e) हैं, और प्रत्येक के अंतर्गत एकाधिक सबडोमेन हैं। मेरे ऐप को उसी शीर्ष स्तर डोमेन में सबडोमेन के बीच सत्र साझा करने की आवश्यकता है जैसे sub_1.domain_b.com & sub2.domain_b.com साझा कर सकता है, लेकिन sub_3.domain_c.com एक अलग सत्र होगा। मामलों को और जटिल बनाने के लिए, यह आदर्श होगा यदि डोमेन & बी, और सी & डी जहां सत्र साझा करने में सक्षम हो।

तो नियम: DOMAIN_B साथ

  • DOMAIN_A शेयरों सत्र, और सभी उप डोमेन उनके भीतर साथ। इसके लिए एक cookie_store

  • domain_cd के साथ डोमेन_c शेयर सत्र, और उनके भीतर सभी सबडोमेन के साथ खुश होना। इसके लिए एक कुकी_स्टोर

  • डोमेन_ई केवल अपने उप डोमेन के भीतर अपना सत्र साझा करता है। यह एक active_record_store में होने की जरूरत है

मैं कैसे यह काम कर सकते हैं?

मैं में नीचे के साथ एक initialiser बनाने की कोशिश की है:

MyApp::Application.config.session_store :cookie_store, :key => '_domain_a', :domain => '.domain_a.com' 

MyApp::Application.config.session_store :cookie_store, :key => '_domain_b', :domain => '.domain_b.com' 

MyApp::Application.config.session_store :cookie_store, :key => '_domain_c', :domain => '.domain_c.com' 

MyApp::Application.config.session_store :cookie_store, :key => '_domain_d', :domain => '.domain_d.com' 

MyApp::Application.config.session_store :active_record_store, :key => '_domain_e', :domain => '.domain_e.com' 

हालांकि मुझे यकीन है कि यह काम कर रहा है नहीं कर रहा हूँ। domain_e.com सत्र काम करता है, जो समझ में आता है क्योंकि यह अंतिम घोषणा है, कोई विचार?

उत्तर

5

देखें: What does Rails 3 session_store domain :all really do? चयनित उत्तर शायद आपको उप डोमेन और शीर्ष स्तर के डोमेन के बीच अलग सत्रों के बीच सामान्य सत्रों की अनुमति देने में मदद कर सकता है। एक ही सत्र को विभिन्न शीर्ष स्तर के डोमेन में मान्य करने के लिए, बहुत अधिक कठिन है, लेकिन शायद यह प्रश्न आपको आगे बढ़ाने में मदद कर सकता है: Rails - Multiple top level domains and a single session/cookie