Set-Cookie 不适用于 Opera/Firefox 但它适用于 Postman。 (表示)

Set-Cookie not working on Opera/Firefox but it does on Postman. (express)

我一整天都在阅读有关遇到同样问题的人的信息,我已经尽我所能,但似乎无法解决问题。

我认为这与浏览器安全策略有关,我的 服务器和客户端 运行 都在不同的本地主机端口 并且浏览器将它们作为不同的域进行威胁。

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

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

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

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

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

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

我在浏览器上得到的:

REQUEST AND RESPONSE

谢谢

自己解决了。

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

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

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

希望这对大家有用!