【问题标题】:Express 4 — how to parse signed cookies?Express 4——如何解析签名的cookies?
【发布时间】: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


    【解决方案1】:

    解决方案很简单:

    cookieParser = require("cookie-parser")
    handshakeData.sessionID = cookieParser.signedCookie( handshakeData.cookie["connect.sid"], globals.config.express.sessionSecret )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 2018-12-21
      • 2019-05-22
      • 2012-12-22
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多