expressjs会话不在子域

时间:2017-01-16 21:40:39

标签: node.js session express

我在快递中使用会话并将其设置为:

app.use(session({
  store: new RedisStore(),
  secret : '',
  cookie: {
    path: '/',
    domain: '.localdomain.com'
  },
  resave: false,
  saveUninitialized: false
}));

然后我在我的主机中localdomain.com以及test.localdomain.com,当我通过test.localdomain.com访问路由时,我能够获取会话数据,但是当我制作ajax时请求localdomain.com,此会话无法使用。例如,在test.localdomain.com上,我会发出请求:

$.get('http://localdomain.com/session')并且会话就在那里,但我没有返回任何设置为会话的值。

我可以访问会话的任何想法吗?

1 个答案:

答案 0 :(得分:-1)

从快递会话源代码开始,它似乎使用了indexOf,它不允许使用正则表达式,因此正则表达式和数组不是一个选项,

// pathname mismatch
var originalPath = parseUrl.original(req).pathname;
if (originalPath.indexOf(cookieOptions.path || '/') !== 0) return next();
恕我直言,最好的选择是编写自己的会话或使用令牌,希望我帮忙。 :)