सत्र आईडी पुनर्जीवित कर रहा है मैं NodeJS में Redis के साथ मानक सत्र दृढ़ता का उपयोग करने की कोशिश की: "। नए सत्र"NodeJS redis कनेक्ट जब यह कायम रहने चाहिए
var express = require('express');
var RedisStore = require('connect-redis')(express);
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
secret: "keyboard cat",
store: new RedisStore,
key: 'sid'
}));
});
app.get('/', function (req, res) {
if (req.session.isValid) {
console.log("There is an existing session.");
}
else {
req.session.isValid = true;
console.log("New session.");
console.log('Old session ID: ' + req.header('Cookie'));
console.log('New session ID: ' + req.session.id);
}
res.render('index', {'title': s});
});
app.listen(4000);
सिद्धांत रूप में मैं लाइन देखना चाहिए एक बार और वेबसाइट साइट के बाद की सभी कॉलों को "मौजूदा सत्र है" का नेतृत्व करना चाहिए। दुर्भाग्यवश प्रत्येक कॉल पर एक नया सत्र आईडी पुन: उत्पन्न होता है। ब्राउज़र में कुकी ठीक काम कर रहा है, सामग्री ठीक से फैलता है और मैं
req.header('Cookie')
में देख सकते हैं इस तरह क्या सांत्वना लॉग लग रहा है:
[app.js] New session.
[app.js] Old session ID: undefined
[app.js] New session ID: nuoHKZj2j0AoRkvqT4xE5h6W.zF+DNv2rzr3kpeO2IyD7sa4xdamFQMugjfQvY6OYymE
[app.js] New session.
[app.js] Old session ID: sid=neLUc5PXxPoj1yFqukerv49x.BHzYKiuAfFSNHKd4fCAkv8wNwZO%2FxykJPN5R5tjAlQc
[app.js] New session ID: FvuzjnXvchCkmVqsq5mrodL2.5YlT3InfTbvOwEUc0dNpPLT77tcdJpNuhbFGVYkLneQ
[app.js] New session.
[app.js] Old session ID: sid=pFbyVdlNZXtF5vZ35CW9sfmq.nJ1RBjJu59iUJJjmZv9TCYiYLcvycme%2BJh8sQC6%2FzEE
[app.js] New session ID: KdPhwqwwgmOnPZEuVapy7EJe.I0TGT9HSSQQSporwCNsxl11rXDxR/ysjTeZb0lD5uwI
एक ही समय में मैं उत्पादन करते समय निम्न में redis-CLI "मॉनिटर" आदेश चलाकर:
sess:nuoHKZj2j0AoRkvqT4xE5h6W.zF+DNv2rzr3kpeO2IyD7sa4xdamFQMugjfQvY6OYymE
*2
$3
get
$73
sess:Q6Z06GL4hdRytKA2MToCIgVw.JWxImSB/m20Urn+IYMQqnNqfQp4ygAESiyBLORn3Iuo
*2
$3
get
$73
sess:neLUc5PXxPoj1yFqukerv49x.BHzYKiuAfFSNHKd4fCAkv8wNwZO/xykJPN5R5tjAlQc
*2
$3
get
$73
sess:FvuzjnXvchCkmVqsq5mrodL2.5YlT3InfTbvOwEUc0dNpPLT77tcdJpNuhbFGVYkLneQ
*2
$3
get
$73
sess:zvCWdwzowgAfl6jH8m0D31vL.b5tK5VZUJtPHrdvH09A/hjhjoOg6bT0CmAcWWRf99SI
*2
$3
get
$73
sess:pFbyVdlNZXtF5vZ35CW9sfmq.nJ1RBjJu59iUJJjmZv9TCYiYLcvycme+Jh8sQC6/zEE
*2
$3
get
$73
sess:KdPhwqwwgmOnPZEuVapy7EJe.I0TGT9HSSQQSporwCNsxl11rXDxR/ysjTeZb0lD5uwI
*2
$3
get
$73
sess:r793eaJyOnaq2RNyw1Hmpuwv.xnonbOlaWEAlpz+LDg0SHcUeAa0sbjyw0oIcwFmlX0w
जब मैं RedisStore की MemoryStore insteand उपयोग करते हैं, सब कुछ उम्मीद से काम करता है की तरह।
कोई भी विचार?
HI Raph - क्या आपने इसे हल किया? मुझे एक ही समस्या है:/ – UpTheCreek
ऐसा लगता है कि एक नए रेडिस संस्करण के उन्नयन में चाल थी। लेकिन मुझे अभी भी पता नहीं है कि समस्या कहां से आई थी। – Raph