0

在我的会议中,我遇到了一些非常奇怪的事情。

它从几周开始就开始工作了,就在今天,当我尝试从SessionStore(来自connect-mongo)回调 return获取会话时undefined variables

我确实发送了一个好的 sid,它以这种方式工作了数周,并且会话系统工作,因为我可以从req.session.

所以我想知道也许有 2 个不同的会话,有没有办法找到 sid 的想法req.session

我不知道这是否正确,但我的 req.session.id 与我得到的 sid 不同

这是代码:

function parseSessionCookie(cookie, sid, secret) {
  var cookies = require('express/node_modules/cookie').parse(cookie)
, parsed = require('express/node_modules/connect/lib/utils').parseSignedCookies(cookies, secret)
;
  return parsed[sid] || null;
}
io.set('authorization', function(data, accept) {
    var sid = parseSessionCookie(data.headers.cookie, 'connect.sid', 'secret');
    SessionStore.get(sid, function(err, session) {
       //err and session are undefined!
    });
});

更新: 问题是我从 SessionStoresid获得的req.session.id和我从 SessionStore 获得的不同!因为如果我SessionStrore.get()用我得到的 sid打电话req.session.id,一切正常!

那么怎么可能有这样的两个不同的会话呢?

4

1 回答 1

0

好的我明白了 !

事情是我在本地工作,使用http://127.0.0.1我的客户端代码中的 URL 连接 soket.io 和http://localhost我的浏览器,所以它创建了一个跨域资源共享问题。

我只是改变了一切http://localhost,它工作正常!

于 2013-10-24T13:36:11.747 回答