2017-09-20 93 views
0

我試圖給每個用戶分配一個「req.session.pseudo」,但是當我嘗試在不同的選項卡中連接時,它會顯示我同一個會話。在Chrome選項卡中區分快速會話會話

這是一個帶有「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

選項卡共享cookie,Cookie用於識別會話。如果選項卡#1獲取會話cookie,則選項卡#2將向服務器發送相同的會話cookie,因此兩個選項卡共享相同的會話。

您可以創建在瀏覽器中的「常規」模式下一屆會議,並在其「私有」(隱身)模式的一個會議,但僅此而已(在各模式中創建也分享了該模式相同的cookie的選項卡,在至少在Chrome中,因此您無法創建多個隱身窗口/標籤並在每個標籤中創建一個新會話)。

可能存在可用於同時創建多個會話的最喜歡瀏覽器的擴展,但您必須搜索這些擴展。

+0

我不知道PHP將如何做到這一點。 – robertklep