2013-01-05 21 views
6

का उपयोग कर नोड.जेएस में कुकी 'की समाप्ति' या 'maxAge' सेट नहीं कर सकता है, मैं एक्सप्रेस 3.0 का उपयोग करके नोड.जेएस में अपनी कुकी की समाप्ति तिथि सेट करने का प्रयास कर रहा हूं, लेकिन कुछ भी काम नहीं कर रहा है।एक्सप्रेस 3.0

मेरा पहला प्रयास:

res.cookie('user', user, { maxAge: 9000, httpOnly: true }); 

बस एक कुकी क्रोम के अनुसार गलत समाप्ति समय है कि में समाप्त होता है। तब मैं सेट करने की कोशिश की 'समाप्त हो रहा है' के बजाय, इसलिए जैसे:

res.cookie('user', user, { expires: new Date(new Date().getTime()+5*60*1000), httpOnly: true }); 

और अब मेरी कुकी सिर्फ एक सत्र कुकी है।

क्या कोई यह जानता है कि इसे कैसे ठीक किया जाए?

+0

धन्यवाद है। इस लिंक के साथ आपके प्रश्न ने मुझे एक ऐसे समाधान में लाया जो मैं ढूंढ रहा था: http://stackoverflow.com/questions/16209145/how-to-set-cookie-in-node-js-using-express-framework – jmunsch

उत्तर

3

आप req.session.cookie उपयोग करने के लिए:

req.session.cookie.expires = false; 

req.session.cookie.maxAge = 5 * 60 * 1000; 

भी connect docs देखें।

+0

बाहर निकलता है : यह वास्तव में काम कर रहा था। क्रोम बस कहता है कि समय प्रारूप गलत है, लेकिन यह अभी भी इसका सम्मान करता है। – skerit

+0

आप res.session कहते हैं, फिर req.ession के साथ एक उदाहरण दें ... फिर जवाब स्वीकार करने के बाद मूल प्रश्नकर्ता कहता है कि 'यह' पहले ही काम कर चुका है .... हम कैसे दुर्भाग्यपूर्ण Googlers हैं जो एक ही प्रश्न के साथ किसी भी मदद प्राप्त करने के लिए हैं इस से? – Spork

2

स्वीकार्य उत्तर मेरे लिए काम नहीं करता है .. लेकिन मूल प्रश्न में वह संस्करण है जो काम करता है। उदाहरण के लिए

var language = 'en'; 
//10 * 365 * 24 * 60 * 60 * 1000 === 315360000000, or 10 years in milliseconds 
var expiryDate = new Date(Number(new Date()) + 315360000000); 
this.__res.cookie('lang', language, { expires: expiryDate, httpOnly: true }); 
0

ध्यान दें कि maxAge इस सवाल पूछने के लिए में milliseconds-

res.cookie('jwtToken', token, { maxAge: 2 * 60 * 60 * 1000, httpOnly: true }); // maxAge: 2 hours