我有一个场景
-
在浏览器上,我打开了一个网站,在通过系统验证后(即访问.abc.com),我会得到一个cookie,并将其设置在客户端上,即connect.sid,域为.abc.com
-
在同一个浏览器上,我打开了另一个webiste,即xyz.abc.com,它也生成会话cookie(在从相同的即access.abc.com获得身份验证后),名称与xyz.abc相同,但域不同(基本上这就是这个网站设置的)
现在,如果我向xyz.abc.com上的任何api发送请求,我会看到2 connect.sid正在运行。
我的问题是,当xyz.abc.com发送请求时,access.abc.com的快速会话将选择哪个cookie?
以下是access.abc.com 上的快速会话设置
var RedisStore = require('connect-redis')(expressSession);
var session = expressSession({
key: 'connect.sid',
store: new RedisStore({host: config.session_redis.host,
port: config.session_redis.port,
ttl: 2*24*60*60 //in secs
}),
resave: false,
saveUninitialized: false,
secret: '234567',
cookie: {
domain: '.abc.com',
maxAge: 2*24*60*60*1000 // in ms
}
});
我的问题是,当xyz.abc.com发送请求时,access.abc.com的快速会话将选择哪个cookie?
查看代码,我认为它会在请求标头中遇到的第一个Cookie
标头中选择一个,所以问题变成了"浏览器会先在标头中放入哪个cookie?"(我无法回答,因为我不知道)。