Golang Gin Set Cookie 未在浏览器中设置[关闭]

2023-12-24

所以我有一个托管在domainA.com的后端golang gin api,我还有一个托管在domainB.com的前端Next.js Web应用程序。所以我有一个登录页面,用户将登录,获取调用将转到domainA,如果他们正确登录,则设置的cookie JWT将发送回客户端,以便cookie可以存储在浏览器上。我已将后端和前端的凭据设置为 true。前端获取看起来像这样

const resp = await fetch(
        domainA + loginendPoint,
        {
          method: 'POST',
          body: requestBody,
          credentials: "include",
        }
      );

后端cors设置如下所示

r := gin.Default()
    config := cors.DefaultConfig()
    config.AllowAllOrigins = false
    config.AllowOrigins = append(config.AllowOrigins, "http://localhost:3000")
    config.AllowOrigins = append(config.AllowOrigins, "https://domainB.com")
    config.AllowCredentials = true
    r.Use(cors.New(config))

后端的处理程序设置 cookie

c.SetSameSite(http.SameSiteNoneMode)
c.SetCookie("nameofCookie", jwtSignedToken, int(time.Now().Add(time.Hour*24).Unix()), "", "", true, false)

其中 secure 为 true,httpOnly 为 false。我在本地工作没有问题,但在不同域的生产中,我的浏览器正确获取 setcookie 标头,它并没有说它根本被阻止,但浏览器没有设置 cookie。任何帮助都会很棒。感谢您的时间。

我已经尝试了所有类型的cors和前端配置。我花了 10 个小时的大部分时间试图解决这个问题,但没有成功。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang Gin Set Cookie 未在浏览器中设置[关闭] 的相关文章

随机推荐