将node.js与Express一起使用。这个问题也与Connect有关,因为那是Express子组件。
我通过socket.io从客户端收到一个签名的cookie。然后我取这个格式的值:
S:sessionID.signature
目前为了验证这一点,我必须手动要求cookie签名模块并使用其unsign方法,这需要我.slice(2)s:off of this string,并且感觉很笨拙。
这是否有方便的方法?我觉得我应该能够做类似的事情:
mySessionID = express.unsignCookie(thisCookie,forThisSessionIDKey,withThisSecret);
但是没有这样的方法......我错过了什么吗?
哦,顺便说一句,由于在socket.io中,我无法访问res / req ...这就是为什么我必须首先从客户端的cookie中传递会话ID ... < / p>
答案 0 :(得分:0)
这是我最终找到的解决方案。在socket.js里面:
var parseSignedCookie = connect.utils.parseSignedCookie;
...
socket.on('taste:cookie', function (data, callback) {
var sid = data.sid;
sid = parseSignedCookie(sid['connect.sid'], "mySecret");