区分chrome选项卡中的快速会话会话

时间:2017-09-20 10:48:55

标签: node.js session express express-session

我正在尝试为每个用户分配一个“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

我希望能清楚我的问题。谢谢。

1 个答案:

答案 0 :(得分:2)

标签共享Cookie,Cookie用于标识会话。如果选项卡#1获得会话cookie,则选项卡#2会将相同的会话cookie发送到服务器,因此两个选项卡共享同一会话。

您可以在浏览器的“常规”模式下创建一个会话,并在“私有”(隐身)模式下创建一个会话,但这是关于它的(在每种模式下创建的标签也至少共享该模式的cookie,至少在Chrome中,您无法创建多个隐身窗口/标签并在每个标签中创建新会话。

可能有你最喜欢的浏览器的扩展可用于同时创建多个会话,但你必须搜索那些。

相关问题