Socket.io和签名的cookie

时间:2013-11-05 19:52:51

标签: javascript node.js cookies socket.io

我正在尝试访问socket.io中的cookie,但它不起作用,我的意思是,我可以看到cookie但是解析不正确,我试过这个:

//Initialisation:
var connect = require('connect');
var cook = require('cookie');
io.sockets.on('connection', function(socket){
     var cookie = connect.utils.parseSignedCookies(cook.parse(socket.handshake.headers['cookie']),secret);
     console.log(cookie);
}

这段代码让我知道了:

{ 'connect.sess': 'j:{"data":{"pseudo":"a","idplayer":100}}' }

我该怎么办?

1 个答案:

答案 0 :(得分:0)

昨天我尝试做同样的事情,这是我的解决方案:

io.configure(function(){
    io.set('authorization', function(data, accept){
        if(data.headers.cookie){
            data.cookie = cookie.parse(data.headers.cookie);
            return accept(null, true);
        }
        return accept('error', false);
    });
});

现在您可以通过socket.handshake.cookie['cookie']

进行访问 希望它有所帮助。