2010-05-17 12 views
5

मैं रेल 3 का उपयोग कर एक ऐप बनाने के शुरुआती चरणों में हूं। उपयोगकर्ता प्रमाणीकरण एथलॉगिक द्वारा संचालित है जिसे मैंने मानक (as per the example docs) और सबकुछ के रूप में बहुत अधिक सेटअप किया है स्थानीय रूप से अपेक्षित के रूप में काम कर रहा है।रेल 3, ऑथलॉगिक, एनजीआईएनएक्स और HTTP मूल प्रमाणीकरण अच्छी तरह से काम नहीं कर रहे

मैंने ऐप को सेंटोस 5.4/एनजिनएक्स/पैसेंजर के क्लीन सर्वर इंस्टॉलेशन में अभी तैनात किया है, इसलिए कर्मचारी लॉग इन करना शुरू कर सकते हैं और सामग्री दर्ज कर सकते हैं। हालांकि, हम सार्वजनिक आंखों के लिए तैयार होने का एक लंबा सफर तय कर रहे हैं इसलिए मैंने पूरी साइट को प्रमाणीकरण के दूसरे स्तर के पीछे रखने के लिए NginX के मूल ऑथ मॉड्यूल का उपयोग किया है।

दुर्भाग्य से ऑथलॉगिक का प्रमाणीकरण और NginX का मूल प्रमाणीकरण एक दूसरे के साथ विरोधाभासी प्रतीत होता है। यदि मूल लेख पर है तो ऑथलॉगिक के साथ लॉग इन करना असंभव है, फिर भी यदि मैं मूल ऑथ अक्षम करता हूं तो ऑथलॉगिक अपेक्षित काम करता है।

मैंने कोई कोड पोस्ट नहीं किया है क्योंकि मुझे सच में यकीन नहीं है कि कौन सा कोड प्रासंगिक होगा। मुझे आश्चर्य है कि यह एक ज्ञात मुद्दा है और यदि कोई बदलाव है तो मैं इस मुद्दे को हल करने के लिए कॉन्फ़िगरेशन में कर सकता हूं?

उत्तर

13

मैं अपने स्वयं के प्रश्न का उत्तर दे सकता हूं (पूरी तरह से गलत जगह में देखने के कई घंटों के बाद)। Authlogic::Session::Config पर एक अच्छा रीडअप चाल था।

class UserSession < Authlogic::Session::Base 
    allow_http_basic_auth false 
end 
+1

वाह .. मुझे यह बहुत खुशी मिली - मैं इस समस्या को लगभग 3 दिनों के लिए हल करने की कोशिश कर रहा हूं। धन्यवाद! – zaius

+0

धन्यवाद आपने मुझे बहुत मदद की। –

+0

वास्तव में बहुत धन्यवाद! – dangerousdave

1

मैंने अभी भी रेल 3 की कोशिश नहीं की है, इसलिए मेरा जवाब अधिक सामान्य होगा। और मुझे NginX के लिए मूल ऑथ मॉड्यूल नहीं पता है।

  1. यदि आपकी टीम स्थानीय रूप से जुड़ा हुआ है, तो आप केवल स्थानीय नेटवर्क से सर्वर को सुलभ बना सकते हैं।
  2. यदि आपको इंटरनेट के माध्यम से एक्सेस की आवश्यकता है, तो आप इसे वीपीएन के पीछे छिपा सकते हैं।
  3. आप केवल स्थानीय आईपी के माध्यम से साइट पर पहुंच सेट कर सकते हैं और किसी को भी एसएसएच पहुंच दे सकते हैं। एसएसएच के माध्यम से मोजे प्रॉक्सी बनाना आसान है (लिनक्स में: ssh -D 8080 [email protected]; जहां 8080 पोर्ट नंबर है, फिर ब्राउज़र में मोजे प्रॉक्सी सेट करें और आप yoursever.com:3000 को दोपहर का भोजन कर सकते हैं)।
  4. मुझे लगता है कि NginX आपको आईपी की अनुमति देने और अन्य से इनकार करने की अनुमति देता है - ताकि आप इसे एक्सेस प्रतिबंध के लिए भी उपयोग कर सकें।
  5. और आप अस्थायी रूप से ApplicationControllerbefore_filter :require_login :) में जोड़ सकते हैं, इसलिए केवल लॉगिन पृष्ठ दुनिया का लाभ उठाएगा।

उम्मीद है कि यह मदद करता है!

+0

आपके सुझावों के लिए धन्यवाद। अंत में मैंने अपने प्रश्न का उत्तर दिया है। समाधान दस्तावेज़ों में था, बस पर्याप्त कठिन देखने के लिए जरूरी था। – aaronrussell

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