在快递会议中处理2 sid

时间:2016-07-20 09:50:48

标签: node.js express express-session

我的情况如下

  1. 在浏览器上我打开一个网站,在获得系统认证后(即access.abc.com),我得到一个cookie,我在客户端设置它,即connect.sid与域名为.abc.com

  2. 在同一个浏览器上,我打开了另一个网站,即xyz.abc.com,它也会生成会话cookie(在从同一个地址(即access.abc.com)进行身份验证之后),其名称相同,但域名为xyz.abc。 com(基本上就是这个网站设置的)

  3. 现在,如果我向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
      }
    });
    

1 个答案:

答案 0 :(得分:1)

  

我的问题是当xyz.abc.com发送请求时,access.abc.com的快递会选择哪个cookie?

查看代码,我认为它将在请求标头中遇到的第一个 @Html.LabelFor(model => model.Area, new { @class = "control-label" }) @Html.DropDownListFor(m => m.AreaID, Model.AreaList, "Please select a Area", new { @class = "form-control" }) 标头中选择一个,因此问题变为“浏览器首先放入标头中的哪个cookie ?“(我无法回答,因为我不知道)。