React Native Firebase reCAPTCHA - PullRequest
       17

React Native Firebase reCAPTCHA

0 голосов
/ 10 октября 2019

Я слежу за реакцией на родную документацию Firebase (https://rnfirebase.io/docs/v5.x.x/auth/phone-auth) при авторизации телефона) и не понимаю, нужна ли (или не нужна) reCAPTCHA.

Документы не передают второй параметрметод signInWithPhoneNumber(), но при вызове метода я получаю сообщение об ошибке, спрашивающее о параметре * 1006. * Поскольку я пишу приложение для iO и Android, я использовал веб-соединение с Firebase и не использую сгенерированный JSONЯ полагаю, что это моя проблема, так как мне кажется, что я вызываю API с немобильного устройства.

Является ли Firebase Web лучшим способом подключения кросс-платформенного приложения React Native? способ сгенерировать код reCAPTCHA?

Документы Firebase говорят о невидимом reCAPTCHA, но они предоставляют код только для HTML с идентификатором кнопки и еще много чего. (Я попытался дать и идентификатор как реквизит, но нашелбезуспешно) https://firebase.google.com/docs/auth/web/phone-auth

Мой конфигурационный файл:

import firebase from 'firebase';

class Config {
  constructor() {
    if (!firebase.apps.length) {
      firebase.initializeApp({
        apiKey: "AIaskdjf93rlaksdjf99999",
        authDomain: "myDomain.firebaseapp.com",
        databaseURL: "https://myDomain.firebaseio.com",
        projectId: "myDomain",
        storageBucket: "",
        messagingSenderId: "88827277272",
        appId: "somenumbersomitted",
        measurementId: "akjdsfkljad"
      });
    }
  }

  login = async (user, success_callback, failed_callback) => {
    await firebase
      .auth()
      .signInWithEmailAndPassword(user.userName, user.password)
      .then(success_callback, failed_callback);
  };

  //todo:: need to update signInWithPhoneNumber second param to be the recaptcha token
  loginWithPhone = async (phoneNumber, success_callback, failed_callback) => {
    var applicationVerifier = ?????;
    await firebase
    .auth()
    .signInWithPhoneNumber(phoneNumber, applicationVerifier)
    .then(success_callback, failed_callback);
  };

  //todo: figure out how to get this method to work in RN. Not able to take in button ID...
  recaptchaVerifier = async (phoneNumber, success_callback, failed_callback) =>{
    window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', {
      'size': 'invisible',
      'callback': function(response) {
        loginWithPhone(phoneNumber, success_callback, failed_callback);
      }
    });
  };
}
const config = new Config();
export default config;
...