Express 4 – 如何parsing签名的cookie?
我正在使用Socket.IO和Express 4进行授权。由于Express.JS不再依赖连接中间件,所以在使用新的cookieparsing器模块parsing带符号的cookiestring时遇到了问题。 假设我需要在Cookie中检查RedisStore中的会话。 这是我从Socket.IO handshakeData得到的:
{ host: 'localhost:8081', accept: '*/*', connection: 'keep-alive', cookie: 'io=CyMFrlbrFD23UeVbAAAA; connect.sid=s%3ADHWS7fJ8e5mQ35yvrKwUBQXH7oAIoEIz.R0TLqQ93IwotvIxNqdU17IgPDKOBMXnlM9eTZ8e4gFU', ... }
如何使用sessionSecretparsingcookie
参数我必须在Redis商店中search合适的会话?
以前我用过
sessionID = globals.connect.utils.parseSignedCookie(handshakeData.cookie["connect.sid"], SESSON_SECRET)
并在Redis中用键search
client.get "sess:" + String(sessionID), (err, reply) -> ... # we found session object with username, success!
现在我不能这样做。
有任何想法吗? 谢谢!
解决scheme很简单:
cookieParser = require("cookie-parser") handshakeData.sessionID = cookieParser.signedCookie( handshakeData.cookie["connect.sid"], globals.config.express.sessionSecret )