我有一个 ionic 应用程序,我使用 firebase 电话身份验证,该身份验证使用 recaptcha。它在 android 上运行良好,但在 ios 上抛出错误,提示 recaptcha 只能在 http 环境中运行。我想知道是否有一种方法可以在不使用 recaptcha 的情况下执行 firebase 电话身份验证。
this.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container',{
'size': 'invisible'
});
let appVerifier = this.recaptchaVerifier;
this.appService.sendPhoneVerification(phoneNumber,appVerifier)
.then(confirmationResult => {
//do something
})
Ios 抛出错误“RECAPTCHA 只能在 HTTP/HTTPS 环境中运行”
最佳答案
这就是我解决问题“'RECAPTCHA 只能在 HTTP/HTTPS 环境中运行'”的方法。
- 安装 Firebase 插件:plugin link
- 将其添加到您的 app.module.ts 中。
进行平台检查:检查是否为 iOS。
if (this.plt.is('ios')) { //这里是ios代码 } 别的 { //这里是安卓 }
现在添加以下代码(iOS 平台),向用户发送验证码短信以验证电话号码。将插件注入(inject)到构造函数中。创建一个变量来分配 Promise 中的数据。电话号码应为国家代码+电话号码。例如“+19999999999”
公共(public)signInUser(phoneNum) { this.firebase.verifyPhoneNumber(phoneNum).then((vdata) => { this.refConfirm = vdata; //您可以将该人重定向到验证页面或向其显示警报 输入验证码。 }); }
现在创建一个 token ,以使用 Firebase 使用凭据验证和登录用户。
公共(public) verifyPhoneNumber(电话号码) { 让 tokenPhone = firebase.auth.PhoneAuthProvider.credential(this.refConfirm, 电话号码); firebase.auth().signInWithCredential(tokenPhone).then((verifiedData) => { //无论您想在这里做什么或将用户重定向到主页。 }); }
您必须添加反向客户端 ID,而不是正常客户端 ID。
我就是这样解决的。
关于firebase - ios 上的 ionic firebase 手机身份验证无需重新验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015117/