我正在尝试为每个用户分配一个“req.session.pseudo”,但是当我尝试连接不同的标签时,它会显示相同的会话。
这是一个带有“req.session.page_views”的例子。
以下是代码:
var express = require('express');
var session = require('express-session');
var app = express();
app.use(session({
secret: 'ssshhhhh',
resave: false,
saveUninitialized: true
}));
app.get('/', function(req, res) {
if(req.session.page_views){
req.session.page_views++;
res.send("You visited this page " + req.session.page_views + " times");
} else {
req.session.page_views = 1;
res.send("Welcome to this page for the first time!");
}
});
我的第一个标签上的结果:
Welcome to this page for the first time!
我的第二个标签上的结果:
You visited this page 2 times
我希望能清楚我的问题。谢谢。
答案 0 :(得分:2)
标签共享Cookie,Cookie用于标识会话。如果选项卡#1获得会话cookie,则选项卡#2会将相同的会话cookie发送到服务器,因此两个选项卡共享同一会话。
您可以在浏览器的“常规”模式下创建一个会话,并在“私有”(隐身)模式下创建一个会话,但这是关于它的(在每种模式下创建的标签也至少共享该模式的cookie,至少在Chrome中,您无法创建多个隐身窗口/标签并在每个标签中创建新会话。
可能有你最喜欢的浏览器的扩展可用于同时创建多个会话,但你必须搜索那些。