मेरे पास वर्तमान में दो अलग-अलग बंदरगाहों पर दो अलग-अलग नोड ऐप्स चल रहे हैं लेकिन समान बैकएंड डेटा स्टोर साझा करते हैं। मुझे दो ऐप्स के बीच उपयोगकर्ता सत्र साझा करने की आवश्यकता है ताकि जब कोई उपयोगकर्ता एक ऐप के माध्यम से लॉग इन करता है, तो उनका सत्र उपलब्ध होता है और वे दूसरे ऐप में लॉग इन होते हैं। इस मामले में, यह 'एक सार्वजनिक सामना करने वाली वेबसाइट और एक प्रशासनिक बैकएंड है।नोड ऐप्स के बीच साझा सत्र?
- एक्सप्रेस
- पासपोर्ट के साथ नोड स्थानीय रणनीति के साथ प्रमाणन को संभालने के लिए
- हम कनेक्ट-redis हमें redis के माध्यम से सत्र साझा करने के लिए अनुमति देने के लिए उपयोग कर रहे हैं इस्तेमाल किया जा रहा है:
हमारे स्थापना निम्नलिखित है ।
- हमारे डोमेन इस तरह दिखेगा: www.mydomain.com और adm.mydomain.com
सत्र सामान (और redis) के लिए दोनों क्षुधा के लिए एक ही है के लिए config:
session: {
options: {
secret: "my secret",
cookie: {
domain: "mydomain.com",
maxAge:1000*60*60*24
}
},
redis: {
host: 'my host',
maxAge: 86400000,
secret: "my secret"
}
}
app.js में सत्र सामान के लिए config इस तरह दिखता है:
if (app.settings.env === "production") {
session.options.store = new RedisStore(session.redis);
}
app.use(express.session(session.options));
app.use(passport.initialize());
app.use(passport.session({ secret: 'a different secret' }));
मैं इसे करने की उम्मीद क्या: हमें एक ही सेक्स को देखने के लिए अनुमति दें दो ऐप्स के बीच कुकी में आयन आईडी।
तो मेरा प्रश्न है: मैं एक्सप्रेस, रेडिस और पासपोर्ट कैसे स्थापित करूं ताकि आप विभिन्न सबडोमेन में सत्र साझा कर सकें?
मुझे लगता है कि आप की जरूरत हो सकता है:
तो, कुछ इस तरह वर्तमान 1.10.1 मालिक के लिए काम करेंगे कुकी डोमेन को '" .mydomain.com "के रूप में निर्दिष्ट करने के लिए -' - 'अग्रणी 'नोट करें। –
बिना "*" के? हमने कल एक परीक्षण में "* .mydomain.com" का इस्तेमाल किया था और यह काम नहीं कर रहा था। मैं इसे आज सुबह आज़मा दूंगा और देख सकता हूं कि परिणाम क्या है। – jpittman
आपने '*' दर्ज किया है, है ना? उस मामले में, हाँ, बस प्रमुख बिंदु। मुझे लगता है कि यह एक कुकी को विभिन्न उप-डोमेन से पठनीय बनाता है। मुझे बताएं और मैं इसे एक उत्तर के रूप में आपूर्ति कर सकता हूं। –