Не удается получить SMS-сообщение для проверки подлинности телефона от firebase в рабочей среде

#node.js #reactjs #firebase-authentication #production-environment

#node.js #reactjs #firebase-аутентификация #производственная среда

Вопрос:

Я использую телефонную аутентификацию firebase для входа пользователей с использованием их мобильных номеров в моем приложении React Node. На локальном хосте все работает нормально, отправляются sms с кодом подтверждения, и пользователи могут войти в систему.

Но когда я развернул приложение, оно больше не работает. Когда вводите номер мобильного телефона и завершаете captcha, он просто перезагружает captcha, и мне приходится заполнять его снова, и он никогда не отправляет sms.

У меня эта ошибка в моей консоли:

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

Это происходит только в рабочей среде. Я не уверен, почему это происходит. Может ли мой хост блокировать какой-либо порт, который firebase использует для отправки sms? Или с моей стороны что-то не так.

Вот мой метод входа в систему:

 loginWithPhone = () => {
this.setState({ showOnlyCaptcha: true }, () => {
  window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier(
    "recaptcha-container"
  );

  var phoneNumber = " 91"   this.state.loginWithMobile;
  var appVerifier = window.recaptchaVerifier;
  firebase
    .auth()
    .signInWithPhoneNumber(phoneNumber, appVerifier)
    .then((confirmationResult) => {
      // SMS sent. Prompt user to type the code from the message, then sign the
      // user in with confirmationResult.confirm(code).
      window.confirmationResult = confirmationResu<
    })
    .catch(function (error) {
      // Error; SMS not sent
      if (error.code === "auth/too-many-requests") {
      this.setState(
        {
          loginWithPhoneErrorMessage:
            "Unable to verify Captcha at this time. Please try again after some time.",
        },
        () => {
          this.setState({ loginWithPhoneError: true });
        }
      );
      }
    });
});
  

};

Ответ №1:

Я понял это после некоторых исследований. Чтобы иметь возможность выполнять проверку подлинности в рабочей среде, вам необходимо добавить свой домен в список авторизованных доменов проекта firebase. После этого все методы входа будут работать в вашем домене.

Комментарии:

1. вы можете пометить свой собственный пост как ответ. это помогает, когда люди ищут, выполнена ли эта отметка ответа.

2. Мне нужно подождать 2 дня, прежде чем я смогу это сделать.