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

时间:2015-02-04 17:12:28

标签: javascript node.js cookies session-cookies

请参阅通讯说明

  1. 客户端--- POST /登录(尚无cookie)--->节点服务器
  2. 节点服务器---> 'set-cookie':'...' - >客户端(设置cookie并将其用于下一个请求)
  3. 如何在第一次请求发送给客户端之前获取设置为set-cookie标头的cookie的编码值?

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

    我试过了:

    1. 访问req.cookies,但未在第一个请求中填充 因为客户还没有cookie。
    2. res.getHeader('set-cookie')可能因为它而返回undefined 在express-session调用express route handler之后设置。
    3. 在服务器端,即使request.cookie为空,我如何访问处理程序中的set-cookie标头或响应对象中的cookie值?

1 个答案:

答案 0 :(得分:1)

差不多一年之后,但是您无法访问的原因是因为快速会话和其他中间件使用名为onHeaders的程序包"当响应是时,执行侦听器即将编写标题。"

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

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

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