【问题标题】:Set-Cookie not working on Opera/Firefox but it does on Postman. (express)Set-Cookie 在 Opera/Firefox 上不起作用,但在 Postman 上起作用。 (表示)
【发布时间】:2019-04-20 10:05:22
【问题描述】:

我一整天都在阅读关于遇到同样问题的人的文章,我已经尽我所能,但似乎无法成功。

我认为这与浏览器安全策略有关,我的服务器和客户端都在不同的 localhost 端口上运行,浏览器威胁它们为不同的域。

但是,正如我所说,如果我从 Postman 发出 post 请求,cookie 就会设置。

Cookieparser 和 cors 已启用,并为它们尝试了多种配置,均未奏效。

还尝试了不同的域和路径设置,结果相同。

我还认为它可能与我的浏览器插件或类似的东西有关,但我尝试使用隐身浏览器和其他浏览器并得到相同的结果...

客户端应用程序在 Angular 上,但我怀疑这与我所阅读的问题有关。

res.cookie("SESSIONID", jwtBearerToken, { domain: 'localhost', secure: false, httpOnly: false, path: '/', maxAge: 9000000 }).send();

我在浏览器上得到的:

REQUEST AND RESPONSE

谢谢

【问题讨论】:

    标签: node.js angular express cookies setcookie


    【解决方案1】:

    自己解决了。

    必须指定来源,通配符“*”之类的凭据对凭据无效

    app.use(cors({
        origin: 'http://localhost:4200',
        credentials: true
    }));
    

    然后在我的 angular http 请求中,我必须添加 withCredentials: true(我已经尝试过,但在来源上使用了通配符)。

    希望这对任何人都有用!

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 2017-07-19
      • 2012-05-17
      • 1970-01-01
      • 2016-03-18
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      相关资源
      最近更新 更多