Javascript 使用Firebase Auth通过小部件对用户进行身份验证

Javascript 使用Firebase Auth通过小部件对用户进行身份验证,javascript,firebase,google-cloud-platform,oauth-2.0,google-authentication,Javascript,Firebase,Google Cloud Platform,Oauth 2.0,Google Authentication,上下文: 我目前正在开发一个嵌入式小部件,类似于对讲机或 并且需要对用户进行身份验证。到目前为止,我侥幸逃脱了惩罚 使用Firebase auth使用无密码身份验证,但用户抱怨 这是一个高摩擦过程,他们根本不愿意这样做。理想 认证解决方案将是让用户使用他们的Google或Facebook 通过OAuth2进行帐户和身份验证 问题: 如果 用户通过其进行身份验证的域未在授权域中列出 列表因此,如果用户将代码放入abc.com,并尝试通过谷歌进行身份验证 firebase拒绝它,因为abc.com不

上下文

我目前正在开发一个嵌入式小部件,类似于对讲机或 并且需要对用户进行身份验证。到目前为止,我侥幸逃脱了惩罚 使用Firebase auth使用无密码身份验证,但用户抱怨 这是一个高摩擦过程,他们根本不愿意这样做。理想 认证解决方案将是让用户使用他们的Google或Facebook 通过OAuth2进行帐户和身份验证

问题

如果 用户通过其进行身份验证的域未在授权域中列出 列表因此,如果用户将代码放入abc.com,并尝试通过谷歌进行身份验证 firebase拒绝它,因为abc.com不在白名单中。白名单 每个客户端的域都是非正统的。我感觉我正在接近它 这是错误的,因为我不能正确地建立一个这样做的心理模型 锻炼从技术上讲,cookies、会话等都是毫无意义的

问题

我如何提供让用户通过第三方身份验证的能力 第三方身份验证提供者?这在技术上可能吗

潜在解决方案

  • 以动态路径(用户访问的网站)在主应用程序上托管小部件 将获取小部件的代码)并在 客户的网站。(例如:/widgets/{widgetID}将具有该小部件)。我不 真的想这么做,因为假肢是一种严重的疼痛,但这听起来像 这是最可行的
我想知道更多/更好的解决方案来解决这一特殊情况。 即使它来自不同的云提供商或不同的应用程序,也没有关系 身份验证服务目标是从小部件验证用户 最好是通过第三方身份验证提供商,如谷歌。

编辑:这是我当前收到的错误:

widget.js:2身份验证/未授权域此域(xyz.com)无权运行此操作。将其添加到Firebase控制台->验证部分->登录方法选项卡中的OAuth重定向域列表中。

根据您的用例,您需要按照以下步骤验证域所有权
xyz.com

之后,您需要将
xyz.com
添加到您的授权域中,如错误消息所述

Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.
有关更多信息,请查看此项

无法使用未经验证或未经授权的域启用Google登录,这是为了通过限制Firebase/Google凭据仅用于已配置的域来保护对您的站点/项目的访问


无法禁用此设置,Google登录使用Firebase Auth上的AFIK域作为身份验证框架

AFIK域仅影响重定向URL,而不限制可以访问登录的域。您的同意屏幕是否标记为?如果您的应用程序被标记为内部,此设置将阻止其他域的用户使用google登录方法。@JanHernandez说我已将abc.com添加到白名单中,我的小部件位于xyz.com中,我尝试使用xyz.com中的弹出窗口通过google对用户进行身份验证,然后我发现firebase错误,该域未经授权,这是什么原因?我将收到的错误消息添加到错误消息中提到的“你的域名
xyz.com
中的
Autorized domains
”,你验证了本文中提到的域名?这两个步骤对于在不同的域中使用google登录方法都是强制性的,这就是重点,通过未在授权域列表中列出的域对用户进行身份验证。我确定了这一事实并发表了这篇文章,以便找到一个解决方法或解决方案,使我能够使用Google Auth以某种方式对用户进行身份验证,如潜在解决方案部分的示例。