浏览器本地主机中未设置 HTTPOnly Cookie
问题:
REST API 的登录端点发送包含有效负载 (JWT) 的 HTTPOnly cookie,但该 cookie 并未被在浏览器中设置。这种方法多年来一直有效,但最近停止了。该问题与本地主机环境无关。 Postman 测试确认 cookie 按预期设置。
使用的方法:
调查:
Go 和 Node API 都正确发送设置了 HTTPOnly 标志的 Set-Cookie 标头。这表明问题可能出在浏览器或 fetch() 方法上。
解决方案:
通过添加凭据:“include”属性解决了问题到前端 JavaScript 中的 fetch() 方法。此属性指示浏览器发送和接收 cookie。
原因:
HTTPOnly cookie 旨在防止客户端 JavaScript 访问 cookie 的内容。默认情况下,浏览器通过不在 XHR 或 fetch() 请求中发送 cookie 来支持这一点。通过添加凭证:“include”属性,浏览器被明确告知将 cookie 与请求一起发送,从而允许服务器接收它并进行适当的设置。
附加说明:
以上是为什么我的 HTTPOnly Cookie 没有在本地主机上设置?的详细内容。更多信息请关注PHP中文网其他相关文章!