node.js sessionStore为所有会话显示相同的数据
我使用node.js并希望将会话存储在KeyValue存储中。我为此尝试了Redis和MongoDB。在这两种情况下,我都使用变量req.sessionStore,如本例所示:node.js sessionStore为所有会话显示相同的数据,session,mongodb,node.js,redis,Session,Mongodb,Node.js,Redis,我使用node.js并希望将会话存储在KeyValue存储中。我为此尝试了Redis和MongoDB。在这两种情况下,我都使用变量req.sessionStore,如本例所示: app.get('/user', parseParams, function(req,res) { data = req.sessionStore.userData || {}; sendStringified(req,res,data); }); 但无论我在哪个浏览器中打开我的webapp,如果我访问
app.get('/user', parseParams, function(req,res) {
data = req.sessionStore.userData || {};
sendStringified(req,res,data);
});
但无论我在哪个浏览器中打开我的webapp,如果我访问该站点,它都会访问我从其他地方登录的上一个帐户的数据。因此,同一时间只能登录一个用户。它似乎在所有会话中共享req.sessionData对象。我错过什么了吗
如果我转到mongo客户端中的会话数据库,并执行db.sesions.find(),它将以以下格式显示条目:
{ "_id" : "CKMF8DfBpYNSCNyPIDj9ozVM.ZVo4d0/Oxrxdql44E6QL+U1AgtHWbGXLyX826YO1bDo",
"session" : "{\"lastAccess\":1301358495277,
\"cookie\":{\"originalMaxAge\":14400000,\"expires\":\"2011-03-29T04:28:16.004Z\",\"httpOnly\":true,\"path\":\"/\"},
\"oauth\":{\"token\":\"the_token\",\"token_secret\":\"the_secret\",\"verifier\":\"the _verifier\",\"access_token\":\"a_token\",\"access_token_secret\":\"a_t_s\"}}" }
我猜您正在使用connect或express,因此: 你不直接与商店互动。您只需与
req.session
交互,connect将使用您配置的存储
我建议您看看rmongo商店提供的示例(redis示例已删除)
非常感谢您的回答!当为会话存储保留req.session时,我如何与会话cookie交互?使用
req.session.cookie
:)您可以获得有关connect文档的更多信息: