在Express / Connect中解析签名cookie的便捷方法?

时间:2013-01-08 08:58:10

标签: node.js cookies express connect

将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>

1 个答案:

答案 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");