将 Node.js 与 Express 结合使用。这个问题也与 Connect 有关,因为这是有问题的 Express 子组件。
我通过 socket.io 从客户端收到一个签名的 cookie。然后我取它的值,格式如下:
s:sessionID.signature
目前,为了验证这一点,我必须手动要求 cookie 签名模块并使用其 unsign 方法,这需要我从该字符串中 .slice(2) s: ,感觉很困惑。
有什么方便的方法吗?我觉得我应该能够做类似的事情:
mySessionID = express.unsignCookie(thisCookie, forThisSessionIDKey, withThisSecret);
但是不存在这样的方法......我错过了什么吗?
哦,顺便说一句,由于位于 socket.io 中,我无法访问 res/req...这就是为什么我必须首先从客户端的 cookie 传递 session ID...
这是我最终找到的解决方案。内部socket.js:
var parseSignedCookie = connect.utils.parseSignedCookie;
...
socket.on('taste:cookie', function (data, callback) {
var sid = data.sid;
sid = parseSignedCookie(sid['connect.sid'], "mySecret");
我是一名优秀的程序员,十分优秀!