Chrome 为什么我的浏览器上没有设置我的网站Cookie?

xtupzzrd  于 2023-06-19  发布在  Go
关注(0)|答案(1)|浏览(174)

您好,我正在开发一个Web应用程序,使用微服务架构。
我在后端使用golang(Fiber),在前端使用Next.js。
当我从restaurant. quiqr. co/signinapi. quiqr. co/auth/signin发送请求时,我会在api. quiqr. co的响应中发送一个包含jwt令牌的cookie。Postman上一切正常,我可以看到cookie被存储并与任何后续请求一起发送。
但当涉及到Web浏览器时,我的cookie不会被存储。会有什么问题呢?
我正在使用kubernetes和Ingress nginx,但正如我之前提到的,一切都可以在Postman上工作。
我尝试将cookie域修改为**. quiqr.corestaurant. quiqr.co**,但这不起作用,我甚至尝试了所有的SameSite属性,但都不起作用。
唯一有效的解决方案是当我把它们都放在同一个域下时。例如:* * quiqr.co/api/auth/signinquiqr.co/restaurant/signin**,返回的cookie将有一个**. quiqr.co域,一切都可以正常工作。
我还意识到,当我这样做的时候,浏览器不会发送
印前检查请求**,但如果我再次将它们分离到子域,浏览器会发送印前检查请求,返回的cookie不会被存储。
那么问题出在哪里呢?谢谢你。
Both requests- Preflight and xhr
xhr request content
No cookies in my devtools

nhn9ugyo

nhn9ugyo1#

我也有同样的问题,只是看了看文档,发现了。我们需要使用cors中间件设置CORS

app.Use(cors.New(cors.Config{
    AllowOrigins:     "http://localhost:5173, http://localhost:5174",
    AllowHeaders:     "Origin, Content-Type, Accept",
    AllowCredentials: true,
}))

允许凭据:真实才是最重要的!
希望有帮助!

相关问题