मैं एक और विस्तृत उत्तर की तलाश में था, और मैंने इसे जांच के माध्यम से ढूंढ लिया। निम्नलिखित लागू होता है यदि आपकी प्रोजेक्ट पोस्टग्रेज़ डेटाबेस में अपना सत्र संग्रहीत कर रही है।
नोट: आपके ऐप में एक से अधिक डीबी से कनेक्शन हो सकते हैं। मुझे अभी भी यह पता नहीं लगाया गया है कि रेल कैसे निर्धारित करते हैं कि इनमें से किन कनेक्शन का उपयोग करना है। मेरी परियोजना का session_store.rb
खाली है।
आपको sessions
तालिका में फ़्लैश संदेश मिलेगा। data
नामक एक कॉलम है जिसमें बेस 64-एन्कोडेड स्ट्रिंग है।
यदि आप स्ट्रिंग को डीकोड करते हैं, तो आपको एक बाइनरी ब्लॉब मिलेगा जिसमें केवल फ़्लैश संदेश नहीं होंगे (मार्शल वाले रूप में, इसलिए वे किसी भी प्रकार की रूबी ऑब्जेक्ट का प्रतिनिधित्व कर सकते हैं), लेकिन सीएसआरएफ टोकन और कई अन्य चीजें भी ।
पूरे ब्लॉब वास्तव में एक मार्शल हैश टेबल है। इसे Marshal.load
के साथ रूबी में अनारक्षित किया जा सकता है, और किसी भी बदलाव के बाद, इसे Marshal.dump
के साथ फिर से दिखाया जा सकता है।
स्रोत
2017-05-12 22:02:13
आपको उन्हें सेट करने की आवश्यकता है लेकिन फ़्लैश var का उपयोग किए बिना। क्या यह भी समझ में आता है? बस यह समझने के लिए कि आप क्या हासिल करना चाहते हैं। – pduersteler
यदि वे कुकीज़ में संग्रहीत किए गए थे तो मैं उन्हें सीधे सेट कर दूंगा: 'कुकीज़ [: फ्लैश] [: नोटिस] = "हैलो वर्ल्ड!"। लेकिन वे कहीं और संग्रहीत हैं। तो सवाल यह है कि: वे कहां संग्रहीत हैं :) – fl00r
रेलगाउड्स से: फ्लैश एक 'सत्र का विशेष हिस्सा' है जिसे प्रत्येक अनुरोध के साथ मंजूरी दी जाती है। और सभी सत्र स्टोर प्रत्येक सत्र के लिए एक अद्वितीय आईडी स्टोर करने के लिए कुकी का उपयोग करते हैं (आपको कुकी का उपयोग करना होगा, रेल आपको यूआरएल में सत्र आईडी पास करने की अनुमति नहीं देगा क्योंकि यह कम सुरक्षित है)। मुझे लगता है कि अगर हम केवल कुकी डेटा स्टोर करने के लिए कुकीस्टोर का उपयोग कर रहे हैं तो फ्लैश कुकीज़ में स्टोर किया जाएगा। आम तौर पर हम केवल कुकीस्टोर का उपयोग करते हैं, इसलिए मुझे लगता है कि फ्लैश संदेश कुकी में कहीं भी होना चाहिए [: सत्र]। ठीक है मैं रेल में नौसिखिया हूँ। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं। – rtcoms