【发布时间】:2015-01-04 19:20:48
【问题描述】:
我正在使用 Socket.IO 和 Express 4 进行授权。由于 Express.JS 不再依赖 Connect 中间件,我在使用新的 cookie-parser 模块解析签名的 cookie 字符串时遇到了问题。假设我需要通过 cookie 检查 RedisStore 中的会话。这是我从 Socket.IO 握手数据中得到的:
{ host: 'localhost:8081',
accept: '*/*',
connection: 'keep-alive',
cookie: 'io=CyMFrlbrFD23UeVbAAAA; connect.sid=s%3ADHWS7fJ8e5mQ35yvrKwUBQXH7oAIoEIz.R0TLqQ93IwotvIxNqdU17IgPDKOBMXnlM9eTZ8e4gFU',
...
}
如何使用 sessionSecret 解析 cookie 参数我必须在 Redis 存储中搜索合适的会话?
我以前用过
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!
现在我不能这样做了。
有什么想法吗?谢谢!
【问题讨论】:
标签: node.js express socket.io authorization