获取 express 编码的 cookie 作为 header 值

Get express encoded cookie as header value

请看通讯说明

  1. 客户端 --- POST /login(还没有 cookie)---> 节点服务器
  2. 节点服务器 ---> ‘set-cookie’ : ‘...’ -> 客户端(设置 cookie 并将其用于下一个请求)

在第一个请求发送到客户端之前,如何获取设置为 set-cookie header 的 cookie 的编码值?

Express 3.x、cookieParser、expression-session 和一个 mongo 作为存储被使用。

我试过了:

  1. 访问 req.cookies 但未在第一次请求时填充 因为客户端还没有cookie。
  2. res.getHeader('set-cookie') returns undefined 可能是因为 在 express-session.
  3. 调用快速路由处理程序后设置

在服务器端,即使 request.cookie 为空,我如何访问我的处理程序中的 set-cookie header 或响应 object 中的 cookie 值?

差不多一年过去了,但你无法访问的原因是因为 express-session 和其他中间件使用了一个名为 onHeaders 的包,其中 "Execute a listener when a response is about to write headers."

所以你也必须使用它来修改headers

var onHeaders = require('on-headers')
onHeaders(res, function(){
    // knock yourself out
    console.log(res.getHeader('set-cookie'));
});

侦听器以相反的顺序触发,因此您必须尽快在代码中获取此代码(侦听器)的值。