Firebase 例外:不支持此浏览器,或者可能禁用第三方cookie和数据
当我们的用户“阻止第三方cookie和站点数据”时,就会发生此错误 要复制错误,请转到:Firebase 例外:不支持此浏览器,或者可能禁用第三方cookie和数据,firebase,firebase-authentication,angularfire2,Firebase,Firebase Authentication,Angularfire2,当我们的用户“阻止第三方cookie和站点数据”时,就会发生此错误 要复制错误,请转到: 检查您的Chrome浏览器“阻止第三方Cookie和站点数据” 去 单击“登录” 接下来,您将看到一个空白屏幕。如果打开浏览器开发人员控制台,您将看到以下错误: 我们始终建议用户取消对第三方cookie和站点数据的阻止;然而,一些用户仍然喜欢阻止它 你仍然可以登录到他们的Gmail与此阻止。有趣的是,为什么我们的用户不能使用Firebase Google OAuth登录,而Firebase Google O
您正在使用的域是deeptent.com,但firebase针对其进行身份验证和设置Cookie的域是您的.firebaseapp.com域。所以,是的,cookies被认为是第三方的。firebase人员真的应该更仔细地看看他们是如何在firebase主机设置中连接自定义域的。此外,请参见此处:
我对firebase和Angular也有同样的问题 在
environment.ts
文件中,查找:
firebase: {
authDomain: '<domain>.firebaseapp.com',
firebase:{
authDomain:“.firebaseapp.com”,
在chrome设置中chrome://settings/content/cookies,将以下字符串添加到cookies白名单:
https://[*.]firebaseapp.com
不推荐使用,因为此解决方案不适用于所有人
仅限Chrome:在chrome中打开内容设置 然后选择cookies。在其中,查找阻止第三方cookies并禁用它
注意:其他浏览器可能都有此选项,只需查找正确的位置即可:)解决方案非常简单。 假设您已在Firebase Hosting上托管您的应用程序,并且example.com已在托管您的应用程序,其中包括身份验证: 您的身份验证域应类似于
[projectid].firebaseapp.com
authDomain
:从>您的项目>ID>ID客户端OAuth 2.0
添加
https://example.com/__/auth/handler
至授权重定向url列表在大多数浏览器中,当您处于
匿名模式时会发生此错误。使用自定义firebase域
2021解决方案
您可以将authDomain
更改为使用与托管应用程序相同的域或子域。这样可以避免cookie错误
自定义托管域
如果您使用的是自定义域,则可能需要如下设置:
mydomain.com -> Hosted website
auth.mydomain.com -> Auth domain (firebaseConfig.authDomain)
要设置此设置,您需要执行以下操作:
Firebase Console>Authentication>Authorized domains
Addauth.mydomain.com
使用您自己的DNS管理,添加以下DNS记录:
Firebase控制台>托管>添加自定义域
(添加auth.mydomain.com
)
然后在应用程序的firebaseConfig
中,将authDomain
的值更改为使用auth.mydomain.com
我不确定Google登录web库是否在此模式下工作。如果是这样,您可以在这种情况下使用该库登录,然后获取Google OAuth ID令牌/访问令牌,并使用signInWithCredential登录Firebase。听起来像是一个计划。Thanks@choopage它起作用了吗?我自己刚遇到这个错误。@choopage嗨,正在努力解决同样的问题。。我看到firebase文档可以提供帮助(部分:“高级:手动处理登录流”)。有人设法解决了这个问题吗?@choopage-我最终发现了这个错误,向用户显示错误消息,并要求他使用电子邮件和密码登录。在我的项目中,authDomain
设置位于firebase.comfig.ts
环境中环境.ts
文件旁边的目录。将Cookie列为白名单起了作用。我想为了增强安全性,我不会将整个*.firebaseapp.com
列为白名单,而是专门针对我的项目的URL?是的,除了你的最终用户不会这样做,你必须拥有与他们相同的环境。你希望最终用户将这些添加到白名单中吗?我想知道我们是否应该这样做t将authDomain
设置设置为自定义域而不是项目的firebaseapp.com
URL?这并不能解决问题。您不能告诉所有客户端这样做才能使用您的应用程序。
mydomain.com -> Hosted website
auth.mydomain.com -> Auth domain (firebaseConfig.authDomain)
TYPE = CNAME
HOST = auth.mydomain.com
VALUE = my-project-id.firebaseapp.com
TTL = 3600