【发布时间】:2013-11-02 14:56:20
【问题描述】:
我的课程很奇怪。
从几周到今天,当我尝试从SessionStore(来自connect-mongo)获取会话时,回调返回undefined variables。
我确实发送了一个好的 sid,它以这种方式工作了数周,并且会话系统工作,因为我可以从 req.session 访问存储的变量。
所以我想知道可能有 2 个不同的会话,有没有办法找到 req.session 的 sid ?
我不知道这是否正确,但我的 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!
});
});
更新:
问题是我从req.session.id 得到的sid 和我从SessionStore 得到的是不同的!
因为如果我使用从req.session.id 获得的 sid 调用SessionStrore.get(),一切正常!
那么怎么可能有 2 个这样的不同会话呢?
【问题讨论】:
标签: node.js session express socket.io