无法在自定义本地域中设置cookie

问题描述 投票:0回答:1

我使用 FastApi 设置 cookie

response.set_cookie(key="rf_t", value=access_token, httponly=False, expires=120)

并且它在“localhost:”本地域上完美工作

但是我需要子域和跨子域 cookie,所以我发现你可以在 \Windows\System32\Drivers tc\hosts 更改主机文件

并创建了几个带有子域的域,如下所示:

127.0.0.1 main.shop.localhost
127.0.0.1 admin.shop.localhost
127.0.0.1 store.shop.localhost

127.0.0.1 shop.localhost
  • 并且 cookie 并没有为所有这些设置,JSON 响应来自服务器,但是 cookie 没有设置,它仅在我设置时设置 使用基本的本地主机域

我在前面使用 vue 3 vite,并像这样在 vite.config.js 中设置开发域和端口

server: {
    port: 5000,
    host: "shop.localhost"
  },

我想这与 chrome 政策有关,因为它不是 https,但是有什么方法可以使用本地子域,并能够为它们设置交叉 cookie(或任何 cookie)?

非常感谢我的开发者们!

linux cookies dns localhost fastapi
1个回答
0
投票

设置 cookie 时,可以尝试指定

SameSite=None
Secure
属性。这允许在跨域请求中发送 cookie,并且需要安全 (HTTPS) 连接。

response.set_cookie(key="rf_t", 
                    value=access_token, 
                    httponly=False, 
                    expires=120, 
                    samesite="None", 
                    secure=True)

注意:这仅适用于开发环境

您还可以更新Chrome Flags开发用途:

  • chrome://flags/#same-site-by-default-cookies
  • chrome://flags/#cookies-without-same-site-must-be-secure
© www.soinside.com 2019 - 2024. All rights reserved.