मैं रेल 3 पर रूबी का उपयोग कर रहा हूं और मैं रैक मिडलवेयर में cookies.signed
विधि का उपयोग करना चाहता हूं। मुझे इसकी आवश्यकता है क्योंकि application_controller.rb
फ़ाइल में before_filter
का उपयोग करने के बजाय मैं सीधे उपयोगकर्ता को मिडलवेयर में प्रमाणीकृत करना चाहता हूं।रैक मिडलवेयर में कुकीज़ का उपयोग कैसे करें?
उदाहरण के लिए, अगर मैं इस तरह से एक नियंत्रक में है कि विधि का उपयोग करें:
cookies.signed[:user_id']
मैं
---
- 1 # This is the id of the current signed in user
- a64ee3asdtjhcc7b35fcb280956be00ba27f94d48dfe4291c06db7d57577d5893 # This is the cookie salt
मिल लेकिन अगर मैं का उपयोग करें कि एक रैक मिडलवेयर में (एक ही आवेदन के) इस तरीका:
request = Rack::Request.new(env)
request.cookies.signed[:user_id']
मैं
NoMethodError
undefined method `signed' for #<Hash:0x00000103333d40>
तो, मैं उस विधि का उपयोग मिडलवेयर में कैसे कर सकता हूं? मैं उपयोगकर्ता आईडी कैसे प्राप्त कर सकता हूं ताकि मैं इसे प्रमाणित कर सकूं?
शायद मैं विस्तार, उदाहरण के लिए, ActionDispatch ... यदि हां, तो कैसे शामिल करने के लिए \ है?
यह मैं सही दिशा में इशारा किया लेकिन अब भी वही त्रुटि (रेल 4.2.7 का प्रयोग करके) उठाया। मुद्दा 'env' में गायब अनुप्रयोग रहस्य था। निम्नलिखित पंक्तियों के साथ पहली पंक्ति को प्रतिस्थापित करना: 'ActionDispatch :: Request.new (Rails.application.env_config.merge (env)) '। – jeffcarbs