2011-10-19 23 views
5

मैं सत्र कुकीज़ प्रबंधित करने के लिए Connect.जेएस और कनेक्ट-सत्र मॉड्यूल का उपयोग कर रहा हूं। मैंने देखा कि कनेक्ट स्थिर फ़ाइलों को छोड़कर सभी मार्गों पर एक सत्र कुकी सेट करता है। समस्या यह है कि मैं उन्हें भेजने से पहले जेएस और सीएसएस फाइलों जैसी कुछ स्थिर फाइलों को संसाधित करता हूं, इसलिए मैं कनेक्ट के अंतर्निर्मित स्थिर सर्वर का उपयोग नहीं कर सकता, जिसका अर्थ है कि कनेक्ट-सत्र इन फ़ाइलों के लिए सत्र कुकी सेट करता है। चूंकि इन फ़ाइलों को बाहरी साइटों पर शामिल किया जाएगा, इसलिए मैं नहीं चाहता कि वे उनके साथ कुकीज़ भेजें।केवल विशिष्ट मार्गों के लिए सत्र कुकीज़

क्या केवल विशिष्ट मार्गों के लिए सत्र कुकीज़ सेट करना संभव है?

+0

'app.use ('/ session-only', express.session()); 'काम करना चाहिए। – OneOfOne

+3

[यह समस्या] (https://github.com/senchalabs/connect/issues/307) आपको रूचि दे सकती है। – jweyrich

उत्तर

2

ठीक है मैं अपने जवाब मिला: http://senchalabs.github.com/connect/middleware-session.html

तुम इतनी तरह connect.session.ignore का उपयोग करके मार्गों को अनदेखा कर सकते हैं: connect.session.ignore.push('/robots.txt');

+3

अब और नहीं: https://github.com/senchalabs/connect/commit/73bf05479cee5b7e8e4e7ba27b45be16a303c912#lib/middleware/session.js –

+0

हम्म, यह इंगित करने के लिए धन्यवाद। कोई विकल्प? –

+0

मान लीजिए कि आप एक वैरिएबल में सत्र मिडलवेयर प्राप्त कर सकते हैं, 'var session = express.session ({key:' blah '}); और फिर बस एक मिडलवेयर लिखें जो' session.apply (express, arguments) 'पथ पर कॉल करता है आप सत्र मिडलवेयर –

2

अगर आप एक्सप्रेस का उपयोग कर रहे हैं, तो आप app.use(express.session()); से पहले app.use(express.static(path.join(__dirname, 'public'))); डाल सकते हैं।

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