Firebase和VueJS:未捕获(在Promise中)的DOMException:阻止了源自“http:// localhost:3000”的框架。

3

我正在按照官方的Firebase身份验证教程操作,但在以下代码中一直出现此错误:

const provider = new firebase.auth.GoogleAuthProvider()
      firebase.auth()
        .signInWithPopup(provider)
        .catch((error) => alert(error.message))
        .then((data) => console.log(data.user, data.credential.accessToken))

这是我的控制台错误:

backend.js:12632 Uncaught (in promise) DOMException: Blocked a frame with origin "http://localhost:3000" from accessing a cross-origin frame.

我在认证控制台中将localhost添加为白名单域名。

我需要同时添加端口吗?假设这会有所帮助...但是任何建议都将不胜感激。谢谢。

顺便说一下,我正在使用Nuxt(Vue)。


忘了提到,当使用FirebaseUI库时,我没有任何问题,一切都正常工作。如果我无法解决上述问题,我将只使用它。 - redshift
1个回答

0

我认为这可能是因为signInWithPopup为身份验证提供程序加载了一个<iframe>

仅从发布的代码中无法确定,但我猜测您可能正在使用Google或Facebook身份验证提供程序,并且您需要将localhost列入身份验证提供程序的白名单,但您无法这样做。

如果是这种情况,最简单的方法可能是使用像ngrok这样的代理来获取可通过Web访问的临时服务器(使用https也可能有所帮助)。


当我构建生产环境并部署到远程服务器时,它能够正常工作。感谢您的评论。 - redshift

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接