1

我在 localhost:3000 上有 Directus API 和管理应用程序,在 localhost:3000 上有前端 React 应用程序。当我尝试从 React 接口通过 client.login 方法登录时,directus 将 cookie 设置为 localhost(其管理应用程序来源)。但是我需要在我的实际应用程序所在的 localhost:3000 上使用这个 cookie。设置cookie头是这样的:directus-test-session=4JCvIJhNxCovLAvCwkSulylc8ZYq1iok4EQ3%3A%3A5b84ad5310ba25a7129ed57448136e13; 路径=/; expires=2020 年 1 月 4 日星期六 14:06:49 UTC;HttpOnly

谷歌控制台也提供如下警告:与http://directus.test上的跨站点资源关联的 cookie设置为没有该SameSite属性。未来版本的 Chrome 将仅提供带有跨站点请求的 cookie,前提是它们使用SameSite=None和设置Secure

我需要将 cookie 设置为 localhost:3000。我怎样才能做到这一点?先感谢您。

4

1 回答 1

0

我不确定 Chrome 是否允许您在撰写本文时将 cookie 设置为特定端口上的 localhost*

至于抛出的警告:我们无法设置该SameSite属性,因为这将完全取消对跨域 cookie 的支持。您可以将最终项目托管在与 Directus 相同的(子)域上,也可以使用 JWT 模式进行身份验证。(使用时client.login,设置mode = 'jwt')。

我们可以考虑默认制作 cookie Secure,但这可能会阻碍 localhost 的开发,因为这需要 HTTPS 连接才能发送 cookie。

* Chrome(和其他浏览器)最近非常频繁地更新其 cookie 政策以对抗第三方跟踪。

于 2019-12-30T15:14:17.997 回答