我正在尝试将用户会话访问到我的套接字连接中以接受/拒绝它。
问题是,我确实得到了一个sessionId string
,但我得到的会话SessionStore.get()
是undefined
。
我想问题可能是我在获得 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);
}
});
也许有人看到我在这里缺少什么?