Cookie 不与 Fetch 一起存储

2023-11-25

我已经阅读了我能找到的所有其他主题,但没有一个解决方案有效。我正在使用 React + Redux + Express 并尝试将 JWT 存储在 cookie 中,如下所示:

https://auth0.com/blog/2015/09/28/5-steps-to-add-modern-authentication-to-legacy-apps-using-jwts/

在我的 Redux 操作中,我发送以下请求:

export function getCookie(token) {
  const config = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + token
    },
    body: JSON.stringify({ token })
  };
  return fetch('http://127.0.0.1:4000/authorize-cookie', config)
   .then((res) => {
     return res.json();
   })
   .then((resJson) => {
     return resJson;
   })
   .catch(err => console.log('Error: ', err));
}

在服务器上我正在响应...

app.post('/authorize-cookie', authenticate, (req, res) => {
  res.cookie('id_token', req.body.token, {
    maxAge: 360000
  });
  res.status(200).send({ message: 'Cookie set!' });
});

...其中authenticate 是验证令牌的函数。

我的响应头看起来一切都很好:

HTTP/1.1 200 OK
Set-Cookie: id_token=xxx.xxx.xxx; Max-Age=360; Path=/; Expires=Tue, 12 Jan 2016 01:24:03 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 25
ETag: W/"19-UA3htFr0PWczMQBN6T4NpA"
Date: Tue, 12 Jan 2016 01:18:03 GMT
Connection: keep-alive

但是当我检查来源选项卡时,没有找到 cookie。我读过有关关闭 httpOnly 和 secure 以及使用 localhost 的问题。我也在每个主要浏览器中进行了尝试,但没有成功。

这里发生了什么?


你遇到了一个有趣的案例。事情是这样的行为fetch功能不同而不是XMLHttpRequest。要在以下位置使用 cookiefetch你应该明确提供credentials option.

fetch('http://127.0.0.1:4000/authorize-cookie', {
    method: 'POST',
    body: JSON.stringify({token: token}),
    credentials: 'same-origin', // <- this is mandatory to deal with cookies
})

根据MDN 上的文章

证书:您要用于请求的请求凭据:省略、同源或包含。要自动发送当前域的 cookie,必须提供此选项。

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

Cookie 不与 Fetch 一起存储 的相关文章

随机推荐

  • JavaScript 地图对象是否已建立索引以优化 map.get? [复制]

    这个问题在这里已经有答案了 在 V8 中 JavaScript Map object 的键在幕后以某种方式进行索引 以优化map get方法 或者确实map get 只是循环遍历整个地图直到发现关键匹配 我对效率感兴趣map get超过 5
  • 计算 Codeigniter 中数据库查询返回的结果数

    我没有太多运气来检测 Codeigniter 中的数据库查询何时返回零结果 我已经仔细阅读了有关 PHP 计数函数的注释 但我仍然一无所知 我从控制器调用查询 视图 如下所示 data result this gt search model
  • 有没有办法从 Google Fit API 读取每日静息心率?

    iOS Google Fit 应用程序将静息心率作为其指标之一 但是 我在 Android Google Fit 应用程序中没有看到它 我想使用 Google Fit 数据在 Android 应用程序中显示静息心率 然而 Android G
  • Android 的 Context.openFileOutput() 使用什么文件系统路径?

    我不明白为什么 Android 开发者文档中没有这个问题的答案 我发现他们总是令人沮丧 重新Context类上的openFileOutput 方法打开一个文件进行写入 它写入到什么内部存储文件路径 http developer androi
  • 浏览器中的 JavaScript 是否可能发生并发读/写读/写冲突?

    我遇到的情况是 我正在进行多次 比如四个 ajax 调用 使用 AngularJS http get 如果这很重要的话 并且我希望每次调用都回调并增加一个计数器 这样我就可以知道所有 四个 线程何时完成完全的 我担心的是 由于 JavaSc
  • GStreamer:如何连接动态打击垫

    我正在尝试使用 GStreamer 播放文件中的 MP4 视频 我已成功使用 playbin2 并在命令提示符下使用以下命令播放该文件 gst launch filesrc location bbb mp4 decodebin2 autov
  • 如何使我的 Rails 应用程序的每个独角兽工作者日志到不同的文件?

    如何让 Rails 应用程序的每个独角兽工作者写入不同的日志文件 原因 混合日志文件的问题 在默认配置中 Rails 会将其日志消息写入单个日志文件 log
  • 为什么我的返回类型毫无意义? [复制]

    这个问题在这里已经有答案了 我正在尝试使用返回类型const MyClass const 但是 我收到警告 警告 815 D 返回类型上的类型限定符毫无意义 这不是一个有效的类型吗 我想要一个不能更改的指针 并且我希望它指向的东西也不能被更
  • 如何使 gcc ftrapv 工作?

    我将下面的代码编译为 gcc Wall ftrapv test c 然而 运行生成的可执行文件总是打印 2147483648 这不是我所期望的 我正在运行 gcc 版本 4 6 3 Ubuntu Linaro 4 6 3 1ubuntu5
  • 如何在 symfony 1.4 中创建/使用自定义类和助手?

    将自定义库或辅助方法放入 symfony 中的最佳方法是什么 我在我的项目中使用了学说 我考虑放置的一个地方是 project root lib vendor MyClasses 但是 如果我想创建一个类或辅助函数 它将使用一些核心 sym
  • 使用 jQuery 解析 JSON 响应

    我正在我的一个应用程序中处理 JSON 响应 我已经使用 jsonp 成功建立了连接 但我无法解析我的回复 Code
  • 在 Windows 中将 python 与 Anaconda 结合使用

    我刚刚在计算机上安装了 Anaconda 因为我需要使用 Numpy 好吧 当我使用 python 时 由于某种原因 我必须位于与python exe当然 现在我想使用 Anaconda 我必须在Anaconda3 Scripts文件夹在哪
  • 无效的对象名称 - 存储过程

    我正在通过 SSMS 在 SQL Server 中创建一个存储过程 我已经编写了下面的存储过程 但是当我单击execute出现错误 消息 208 第 16 级 状态 6 程序 NewQuestion 第 11 行 对象名称 hgomez N
  • python 跟踪分段错误

    我正在从 python 开发 C 扩展 并且遇到了一些段错误 在开发过程中不可避免 我正在寻找一种方法来显示发生段错误的代码行 一个想法就像跟踪每一行代码 我该怎么做 如果你在linux上 在gdb下运行python gdb python
  • C++11 lambda 表达式末尾的括号

    我对 C 11 lambda 遇到的一些示例感到困惑 例如 include
  • Django:没有名为“app”的模块

    姜戈呕吐了 ImportError at store No module named store 但就在那里有调试消息和设置 INSTALLED APPS django contrib auth django contrib content
  • 是否无法使用 JSON.stringify 对错误进行字符串化?

    重现问题 我在尝试使用网络套接字传递错误消息时遇到了问题 我可以使用复制我面临的问题JSON stringify为了迎合更广泛的受众 node v0 10 15 gt var error new Error simple error mes
  • 最准确的编码检测器是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 经过一番调查 我发现java界有一些编码检测项目 如果getEncoding in InputStreamReader不起作用 儒尼沃萨尔沙代 jc
  • 字体大小相对于用户的屏幕分辨率?

    我有一个流畅的网站 菜单占其宽度的 20 我希望正确测量菜单的字体大小 以便它始终适合框的宽度 并且永远不会换行到下一行 我正在考虑使用 em 作为单位 但它与浏览器的字体大小相关 因此当我更改分辨率时 字体大小保持不变 还尝试了分数和百分
  • Cookie 不与 Fetch 一起存储

    我已经阅读了我能找到的所有其他主题 但没有一个解决方案有效 我正在使用 React Redux Express 并尝试将 JWT 存储在 cookie 中 如下所示 https auth0 com blog 2015 09 28 5 ste