Firebase reCAPTCHA验证程序无法在Cordova iOS应用上运行

时间:2019-04-30 14:42:45

标签: javascript ios firebase cordova firebase-authentication

我在cordova iOS应用和Firebase reCAPTCHA验证方面遇到问题。

我正在尝试使用Firebase方法将电话号码登录到我的cordova应用中,大致如下:

// DOM:
<div id="recaptcha-verifier-container" />

// Render recaptcha widget
const recaptchaVerifier = new firebase.auth.RecaptchaVerifier(
  'recaptcha-verifier-container',
  { 'size': 'normal' })
recaptchaVerifier.render()

// Sign in after user has completed captcha verification and entered phone number
firebase.auth().signInWithPhoneNumber(number, recaptchaVerifier)

在cordova android应用程序和纯Web应用程序上,这会在iframe中生成一个验证码复选框小部件(请参阅DOM屏幕截图),并且登录可以按预期进行。在iOS应用中,虽然未呈现验证码窗口小部件(请参阅DOM屏幕截图),所以用户无法完成它并登录。

控制台没有提供任何有用的消息,但是如果我打开iOS reCAPTCHA iframe网址,则会看到一个小部件,显示无法连接到reCAPTCHA服务器。请检查您的互联网连接并重新加载以获取reCAPTCHA挑战(请参见屏幕截图)。

我在项目中使用cordova-plugin-ionic-webview,这使得整个应用程序都可以通过http://localhost:8080上的内部Web服务器进行服务。我已将Firebase项目设置中的localhost域列入白名单。这应该可以解决由于file:///协议而导致验证码无法正常工作的常见cordova问题。

您对如何解决iOS行为或如何进一步调试此问题有任何想法吗?

Android Recaptcha小部件DOM(确定) Android recaptcha widget - rendered

iOS Recaptcha小部件DOM(未呈现) iOS recaptcha widget - not rendered

打开iOS小部件iframe网址 enter image description here

0 个答案:

没有答案