获取快速编码的 cookie 作为标头值

Igo*_*lyk 3 javascript cookies session-cookies node.js

请看通讯说明

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

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

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

我试过:

  1. 访问req.cookies但未在第一个请求中填充,因为客户端还没有 cookie。
  2. res.getHeader('set-cookie')返回undefined可能是因为它是在 express-session 调用 express 路由处理程序之后设置的。

在服务器端,即使 request.cookie 为空,我如何才能访问处理程序中的 set-cookie 标头或响应对象中的 cookie 值?

Iva*_*nos 7

差不多一年后,您无法访问的原因是 express-session 和其他中间件使用了一个名为onHeaders的包,该包“在响应即将写入标头时执行侦听器”。

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

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

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