Node.js Express 4-如何解析签名cookie?
我正在用Socket.IO和Express 4进行授权。由于Express.JS不再依赖连接中间件,我在使用新模块解析签名cookies字符串时遇到了问题。假设我需要通过cookies检查RedisStore中的会话。以下是我从Socket.IO handshakeData获得的信息:Node.js Express 4-如何解析签名cookie?,node.js,express,socket.io,authorization,Node.js,Express,Socket.io,Authorization,我正在用Socket.IO和Express 4进行授权。由于Express.JS不再依赖连接中间件,我在使用新模块解析签名cookies字符串时遇到了问题。假设我需要通过cookies检查RedisStore中的会话。以下是我从Socket.IO handshakeData获得的信息: { host: 'localhost:8081', accept: '*/*', connection: 'keep-alive', cookie: 'io=CyMFrlbrFD23UeVbAAAA;
{ host: 'localhost:8081',
accept: '*/*',
connection: 'keep-alive',
cookie: 'io=CyMFrlbrFD23UeVbAAAA; connect.sid=s%3ADHWS7fJ8e5mQ35yvrKwUBQXH7oAIoEIz.R0TLqQ93IwotvIxNqdU17IgPDKOBMXnlM9eTZ8e4gFU',
...
}
如何使用sessionSecret解析cookie参数我必须在Redis store中搜索合适的会话
以前我用过
sessionID = globals.connect.utils.parseSignedCookie(handshakeData.cookie["connect.sid"], SESSON_SECRET)
并在Redis中使用
client.get "sess:" + String(sessionID), (err, reply) ->
... # we found session object with username, success!
现在我不能做这个把戏了
有什么想法吗?谢谢大家! 解决方案很简单:
cookieParser = require("cookie-parser")
handshakeData.sessionID = cookieParser.signedCookie( handshakeData.cookie["connect.sid"], globals.config.express.sessionSecret )