首页  >  文章  >  后端开发  >  为什么本地主机上的浏览器中没有设置我的 HTTPOnly Cookie?

为什么本地主机上的浏览器中没有设置我的 HTTPOnly Cookie?

Susan Sarandon
Susan Sarandon原创
2024-11-18 19:55:02118浏览

Why Aren't My HTTPOnly Cookies Setting in the Browser on Localhost?

本地主机上的浏览器中未设置 HTTPOnly Cookie

问题:

在 REST API 中使用生成 HTTPOnly cookie 的登录端点,即使通过 Postman 的 POST 请求正常工作,浏览器中也不再设置 cookie。尽管使用了以前有效的方法,但还是出现了此问题。

使用的方法:

  • 创建了 REST API 的最小 Go 实现。
  • 使用 Express 和 axios 创建 Node 实现。
  • 分析标头响应并测试前端代码。

结果:

  • Go 和 Node API 都在其响应标头中发送了 HTTPOnly cookie。
  • 但是,测试的浏览器中并未设置 cookie。

解决方案:

问题出在客户端 JavaScript(fetch() 方法)。通过向 RequestInit 对象添加“credentials:“include””选项,浏览器可以通过请求发送和接收 cookie。这是在浏览器中设置 HTTPOnly cookie 所必需的。

其他信息:

  • Axios 自动设置“凭据:“包含””选项。
  • 如果使用 Axios,则应在请求的第三个配置参数中包含“withCredentials: true”以启用浏览器 cookie 设置。

以上是为什么本地主机上的浏览器中没有设置我的 HTTPOnly Cookie?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn