如何从socket.io中访问req.session变量?

Tho*_*ggi 3 session-cookies node.js express socket.io

我正在使用express和socket.io.我有一些req.session我希望从socket.io中访问的变量.我在socket.io和session上阅读了这篇文章,我仍然对如何获取req.session变量感到困惑.

Err*_*ald 7

实现此目的的一种方法是在套接字内部使用会话存储 - 这将包含您所有的会话变量.这是我进行授权的方式(将cookie ID与数据库中的会话ID进行比较).

io.set('authorization', function (data, accept) {

    if (data.headers.cookie) {

        data.cookie = utils.parseCookie(data.headers.cookie);
        data.sessionID = data.cookie['connect.sid'].split('.')[0].substring(2);

        sessionStore.get(data.sessionID, function (err, session) {
                // now you have all session variables
        });                     
    }
});
Run Code Online (Sandbox Code Playgroud)