繁体   English   中英

为什么 Firebase 在自定义托管域上显示第三方 cookies?

[英]Why is Firebase showing third party cookies on a custom hosting domain?

我刚刚使用 Firebase 托管设置了我的自定义域,我们称之为mydomain.example.com

当我在 Firefox 中导航到它时,它会在域旁边显示一个切换,单击时会显示:

在此处输入图像描述

编辑部分是我的 firebase 项目 ID,完整域是 Firebase 托管的默认域之一。

这里到底发生了什么,我该如何改变行为,以免导致这些跨站点 cookies? 这是否与 Google Auth 提供程序有关,我还注意到它没有在弹出窗口 window 中使用新的自定义域(而是使用默认域之一)进行登录?

这是 Firebase Auth SDK 的已知问题。 它与 Google Auth 提供程序无关。 问题是 Firebase Auth SDK 使用 cookie 来存储用户的 session。 cookie 设置为 Firebase 项目的域,这是 Firebase 托管的默认域。 cookie 设置为安全的,因此它不会通过 HTTP 发送,而是通过 HTTPS 发送。 cookie 也设置为 SameSite=Lax,这意味着它不会在跨站点请求上发送,除非请求是 GET 请求。 cookie 不会在作为 POST 请求的跨站点请求上发送,登录弹出窗口就是这种情况。 cookie 是在 GET 请求的跨站点请求上发送的,主页就是这种情况。 要解决此问题,您可以将 cookie 策略设置为 SameSite=None。 这将允许跨站点请求发送 cookie,但也需要将 cookie 标记为安全。 这意味着 cookie 将仅通过 HTTPS 发送。 如果您使用的是自定义域,则需要为您的自定义域设置 HTTPS。 如果您使用默认域,则需要为您的默认域设置 HTTPS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM