1

将 node.js 与 Express 一起使用。这个问题也与 Connect 有关,因为那是有问题的 Express 子组件。

我通过 socket.io 从客户端收到一个签名的 cookie。然后我取它的值,格式如下:

s:sessionID.signature

目前要验证这一点,我必须手动要求 cookie-signature 模块并使用它的 unsign 方法,这需要我从这个字符串中 .slice(2) s: ,感觉很笨拙。

有没有方便的方法?我觉得我应该能够做类似的事情:

mySessionID = express.unsignCookie(thisCookie, forThisSessionIDKey, withThisSecret);

但是不存在这样的方法......我错过了什么吗?

哦,顺便说一句,由于在 socket.io 中,我无法访问 res/req ......这就是为什么我必须首先从客户端的 cookie 传递会话 ID ......

4

1 回答 1

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");
于 2013-08-17T04:18:28.547 回答