首页 > 后端开发 > Golang > 为什么我的浏览器不将我的 Go 服务器设置的 Cookie 存储在 React 应用程序中?

为什么我的浏览器不将我的 Go 服务器设置的 Cookie 存储在 React 应用程序中?

Patricia Arquette
发布: 2024-12-01 13:02:09
原创
730 人浏览过

Why Doesn't My Browser Store Cookies Set by My Go Server in a React App?

浏览器拒绝存储 Cookie

问题陈述

在与 Go 服务器集成的 React 应用程序中,服务器尝试在登录响应。然而,尽管 cookie 在网络选项卡的响应中返回,但浏览器并未保存 cookie。

探索

提供的代码片段表明:

  • 跨源资源共享 (CORS) 配置为允许凭据。
  • http.SetCookie() 函数用于将 cookie 添加到响应中,设置如下:

    • 名称:“accessToken”
    • 值:令牌
    • Max年龄:指定为整数
    • 路径:“/api”
    • 仅限 HTTP: true
    • SameSite: LaxMode

网络选项卡的屏幕截图显示 cookie 确实在响应标头中发回。

解决方案

解决这个问题的关键在于Fetch API的凭证标志。当发出预计响应中包含 cookie 的获取请求时,必须设置凭据:“include”。

编辑的代码:

fetch(`${url}/login`, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    credentials: "include", // This line has been added
    body: JSON.stringify({
        email: userDetails.email,
        password: userDetails.password,
    }),
}).then((response) => { ...
登录后复制

通过将凭据设置为“include”,浏览器知道它应该接受并存储响应中包含的 cookie。此配置可确保浏览器正确保存 cookie 并使其可供后续请求使用。

以上是为什么我的浏览器不将我的 Go 服务器设置的 Cookie 存储在 React 应用程序中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板