将代码重新发送到手机需要多长时间? Firebase Javascript

时间:2017-10-25 07:09:11

标签: javascript firebase firebase-authentication

我正在实施电话验证(firebase提供)。用户输入电话号码后,firebase会向该电话号码发送验证码。

但有时代码无法在手机上收到,所以我想添加重新发送代码的选项。

在这种情况下,firebase不允许您立即重新发送代码,在重新发送代码之前需要一段时间。否则它会给出错误:

  

POST   https://www.googleapis.com/identitytoolkit/v3/relyingparty/sendVerificationCode?key=AIxxxxDtg4xxxxxxxxxxxEhxxxxqpxxxxxxXI   400()

我在启用重发按钮之前添加了 60s 的时间间隔,但这不是谷歌所需的时间。

多一点可能 80-90 秒。我已经阅读了文档,但找不到任何相关信息。

任何人都可以告诉我这件事吗?重新发送代码需要多长时间?

对于“形式”,这是我的代码:

var appVerifier = window.recaptchaVerifier;
    fire.auth().signInWithPhoneNumber(refinedNumber, appVerifier)
    .then(function (confirmationResult) {
      thisclass.setState({
        btnLoading: '',
        page: 'code'
      })
      var timeleft = 60;
      setInterval(function(){
        if (timeleft > 0) {
          timeleft--;
          thisclass.setState({
            resendTime: 'Resend Code In '+timeleft+'s'
          })
        }else{
          thisclass.setState({
            resendTime: '',
            resendEnabled: ''
          })
        }

      }, 1000)
      // user in with confirmationResult.confirm(code).
      window.confirmationResult = confirmationResult;
    }).catch(function (error) {
      // Error; SMS not sent
      // ...
    });

1 个答案:

答案 0 :(得分:1)

等待重新发送代码不应该是特定的时间段。但是由于传递延迟,建议在重新发送代码之前等待。 FirebaseUI-web在重新发送代码之前等待15秒:

https://github.com/firebase/firebaseui-web/blob/master/javascript/widgets/handler/phonesigninstart.js#L176

这一点也很重要,因为将代码发送到同一个电话号码的次数有限,以防止可能的滥用。