在HTTP localhost上使用XHR通过HTTPS设置安全cookie



我在localhost:3000上运行一个CRA React应用程序,该应用程序使用axios,该应用程序对https://api-local.domain.io:3010/xxx/authorize进行以下API调用,该调用响应标头:

set-cookie: gd_resource=XXX; Domain=.domain.io; Path=/; Expires=Thu, 23 Jun 2022 16:08:05 GMT; Secure; SameSite=None

这个cookie被配置为它将被发送到domain.io的子域的任何API调用的任何请求。所以应该是Secure

但是我可以看到,当API调用被发送到https://project-dev.domain.io/yyy时,它没有被发送。

我不明白为什么,是因为我在HTTP上运行应用程序吗?

我试着在http://editor-local.domain.io:3000上运行它,改变我的/etc/hosts文件,但它没有改变任何东西。

我已经尝试使用mkcert在https://localhost:3000上运行应用程序,但Chrome说证书无效,尽管我的钥匙链似乎没问题。


编辑

我设法让我的应用程序运行在https://editor-local.domain.io:3000与mkcert,但它不改变一件事:cookie仍然没有发送请求

事情是这样的:axios请求的参数withCredentials: true有两个函数:

  • 它告诉axios发送可用的cookie;
  • 它还告诉浏览器保存响应的set-cookie头中返回的cookie。

所以我对https://api-local.domain.io:3010/xxx/authorize的请求必须与withCredentials: true一起提出。

最新更新