angular - Safari、Iphone 上的 Firebase 电话身份验证问题

标签 angular firebase firebase-authentication

我有一个使用 Firebase 电话身份验证的 Angular 5 网站。它已经在浏览器上进行了测试 - Chrome、Edge、Firefox。然而,我在 iPhone 上的 Safari 中发现了一个特殊问题(使用 iPhone 7 进行测试)。当我加载网站时,我看到正在发送以下请求,并且正在发送多个请求。然后,这些请求返回 404 页面(来自服务器端渲染的 Angular 应用程序)。当我使用 Chrome/Firefox 等进行测试时,我没有看到这些请求。我已将我们的域添加到 Firebase 授权域中。我正在使用 NPM 包 firebase v4.5。有人遇到过这样的问题吗?请帮忙!

/__/auth/iframe?apiKey=<my api  key>&appName=%5BDEFAULT%5D&v=4.6.1&usegapi=1&jsh=m;%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en_US.8cRDzGyX0Jg.O%2Fm%3D__features__%2Fam%3DIA%2Frt%3Dj%2Fd%3D1%2Frs%3DAGLTcCOumnctmUFyV5XKENARAyGn9omQBg#id=I0_1518510096392&_gfid=I0_1518510096392&parent=https%253A%252F%252F<domain>&pfname=&rpctoken=27250867

最佳答案

Firebase Auth 使用 IFrame 在用户登录期间运行一些可信代码。它本质上验证请求是否合法(并且与 reCAPTCHA 验证器相关)。你可以看一下创建它的代码here

不幸的是,Safari 中的 IFrame 支持不是很好 - 本地存储和 iframe 到主窗口的通信存在很多限制。听起来 Angular Universal 可能会导致这个问题。

您可以尝试使用 Angular Firebase 库 angularfire2 。他们一直在努力支持 ssr。如果不起作用,他们可以帮助调试。

否则,请尝试更新到最新的 firebase npm 软件包,并针对 firebase-js-sdk 提交错误

关于angular - Safari、Iphone 上的 Firebase 电话身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48765966/

相关文章:

angular - 没有 UrlHelperService 的提供者

node.js - 如何解决MSBUILD : error MSB4132 on windows 10?

css - Angular 2 将渐变视为不安全

javascript - 在 angular2 中获取参数

android - 如何知道 Firebase DataSnapshot 何时在服务器端持久化

firebase - cloud_firestore 0.14.0如何使用数据方法

javascript - Firebase UID 总是 28 个字符吗?

firebase - 如何使用 Firebase 的 'verifyPhoneNumber()' 确认电话 # 所有权而不使用 # 登录?

firebase - 如何从 Flutter 退出 Google Auth?

javascript - 无法使用第一个数组值从 firebase 获取数据