Cookies 无法通过分析cookie访问socket.io中的用户会话

Cookies 无法通过分析cookie访问socket.io中的用户会话,cookies,express,socket.io,Cookies,Express,Socket.io,我尝试将用户会话访问到套接字连接中,以便接受/拒绝它 问题是,我确实得到了一个sessionId字符串,但是我使用SessionStore.get()得到的会话是未定义的 我想问题可能是,我在获取sessionId后从未“签名”(data.cookie['connect.sid']),但我没有找到任何方法使用cookie模块来完成签名 var MongoStore = require('connect-mongo')(express); var SessionStore = new MongoS

我尝试将用户会话访问到套接字连接中,以便接受/拒绝它

问题是,我确实得到了一个
sessionId字符串
,但是我使用
SessionStore.get()
得到的会话是
未定义的

我想问题可能是,我在获取sessionId后从未“签名”(data.cookie['connect.sid']),但我没有找到任何方法使用
cookie
模块来完成签名

var MongoStore = require('connect-mongo')(express);
var SessionStore = new MongoStore({ db: "test" });
var parseCookie = require('cookie').parse;

app.use(express.session({
        secret: 'test',
        store: SessionStore
    }));

io.set('authorization', function(data, accept) {
    if (data.headers.cookie) {
        data.cookie = parseCookie(data.headers.cookie);
        data.sessionID = data.cookie['connect.sid'];
        console.log('sessionId: '+data.sessionID);
        SessionStore.get(data.sessionID, function(err, session) {
            if (err || !session) {
                console.log('err: '+err);
                console.log('Session: '+session);
                accept('Error', false);
            } else {
                data.session = session;
                accept(null, true);
            }
        });
    } else {
       return accept('No cookie transmitted.', false);
    }
});

也许有人看到了我缺少的东西?

connect.sid
cookie格式化为带有前缀的两部分。可以使用以下片段提取实际会话ID部分:

rawSid.split(".")[0].slice(2);