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