2017-09-20 2 views
0

각 사용자에게 "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

탭은 쿠키를 공유하며 쿠키는 세션을 식별하는 데 사용됩니다. 탭 # 1이 세션 쿠키를 가져 오면 탭 # 2는 동일한 세션 쿠키를 서버에 보내므로 두 탭 모두 동일한 세션을 공유합니다.

하나의 세션을 브라우저의 '일반'모드로 만들고 하나의 세션을 '비공개'모드 (시크릿 모드)로 만들 수 있지만 그게 전부입니다 (각 모드에서 생성 된 탭은 해당 모드에서 동일한 쿠키를 공유합니다). Chrome에서는 최소한 시크릿 창/탭을 여러 개 만들거나 각각의 새 세션을 만들 수는 없습니다.

아마도 여러 세션을 동시에 만드는 데 사용할 수있는 즐겨 찾는 브라우저의 확장 프로그램이 있지만이를 검색해야 할 수 있습니다.

+0

나는 PHP가 어떻게 그렇게 할 수 있을지 전혀 모른다. – robertklep

관련 문제