首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cookie httponly未发送

cookie httponly未发送
EN

Stack Overflow用户
提问于 2020-07-29 15:22:49
回答 6查看 2.4K关注 0票数 0

我正在用api平台构建一个api,用react构建一个前端(使用api平台的react模板)。我配置了身份验证和返回到客户端的httponly cookie,其中包含jwt。但当我前面提出要求的时候,它不会发送这个饼干.我完全不知道为什么,我认为这是自动完成的浏览器,直到它是在同一领域。

下面是来自我的客户端的网络历史的一个例子:

我的应用程序正在https://localhost:3000/上运行

你认为这些要求有什么不对吗?或者有人知道它会从哪里来?我的应用程序和api正在使用https并且有一个有效的证书..。

如果您需要任何额外的信息,请随时询问,并感谢所有!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2020-08-20 07:23:18

好的,我找到了解决方案:向auth请求添加凭据,如果没有添加标头,cookie将不会被浏览器存储。第二点:

代码语言:javascript
复制
const fetchHydra = (url, options = {}) =>
  baseFetchHydra(url, {
    ...options,
    credentials: 'include',
  });

credentials: 'include'不在标头选项中..。很好!

票数 0
EN

Stack Overflow用户

发布于 2020-08-01 09:02:42

我假设您使用的是xhr获取

Cookie忽略端口,但跨源策略不忽略端口。

您使用两个urls (http://localhost:8443http://localhost:3000)。所以您的应用程序正在制作交叉原点请求,因为端口不同。

xhr需要将其withCredentials属性设置为true,以便发送具有跨源请求的cookie。fetch要求将其凭据参数设置为包含

服务器端,将Access-Control-Allow-Credentials设置为true

还请注意,您的cookie是samesite=strict.在生产中,如果您使用两个域作为应用程序和api,它将永远不会被发送。

这里真正的问题是为什么使用cookie而不是Authorization头呢?

票数 2
EN

Stack Overflow用户

发布于 2020-08-03 07:29:31

好吧我不知道..。当我试图解决我的问题时,我什么也没发现。我之所以使用cookie httponly是因为:

  • 我想试试看
  • 许多安全文章说,它更安全,因为客户端api不能访问这些cookie,浏览器管理它。它似乎可以对抗xss和cookie的隐身,但是如果我的cookie是用本地饲料存储的,我认为我没有这个问题,但是对于localStorage,我有问题,不是吗?
  • 很酷不!我做了太多的经典无记名的项目,我现在可以改进它了

非常感谢你的好听回答,鲁戈里尼夫!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63156982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档