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

Get express encoded cookie as header value

本文关键字:cookie 编码 获取      更新时间:2023-09-26

请参阅通信说明

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

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

使用 Express 3.x、cookieParser、表达式会话和 mongo 作为存储。

我试过了:

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

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

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

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

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

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