Использование проверки электронной почты Firebase для пользовательской электронной почты - PullRequest
0 голосов
/ 02 января 2019

Я использую ionic 3 и firebase аутентификацию через facebook.Facebook не возвращает идентификатор электронной почты, если пользователь не предоставил его при регистрации или не проверил его вообще.

Наша система требует предоставления идентификатора электронной почты.Таким образом, в качестве отката мы предлагаем пользователю ввести идентификатор электронной почты.Поскольку на этом этапе мы позволяем пользователю вручную указывать идентификатор электронной почты, необходимо его проверить.

Кажется, что firebase auth sendEmailVerifcation требует, чтобы идентификатор электронной почты уже был в аутентификации.Поскольку наш случай специально обрабатывается, когда этого не хватает, как мы можем использовать эту функцию для проверки идентификатора электронной почты?

Любые другие идеи также приветствуются, чтобы справиться с этим.Для нас это является критическим блокирующим фактором, поскольку люди неправильно используют нашу систему вознаграждений, предоставляя поддельные идентификаторы электронной почты.

Я изучил API sendEmailVerification, но, похоже, он не принимает никаких параметров для ручной передачи идентификатора электронной почты.

constructor(public navCtrl: NavController, 
              public navParams: NavParams,
              private afAuth: AngularFireAuth,
              private fb: Facebook, 
              private platform: Platform,
              private core:CoreProvider,
              public viewCtrl: ViewController,
              private ddlSvc: DoodleDataProvider,
              private alertCtrl:AlertController,
              private toastCtrl: ToastController) {

                //block back button on android
                platform.registerBackButtonAction(() => {

                },1);

                afAuth.authState.subscribe(user => {
                  console.log("auth subscription finished: with user:" + JSON.stringify(user))

                  //go back if user could not be retireved or manual logout is set to true
                  if (!user || core.manualLogout == true) {   
                    return;
                  }

                  user.sendEmailVerfication() //problem here when email is null
                  console.log("initializing user")
                  this.createUser(user.uid)
                });
  }

1 Ответ

0 голосов
/ 02 января 2019

Подтверждение по электронной почте только для пользователей, которые регистрируются с аутентификацией по электронной почте / паролю .Цель состоит в том, чтобы подтвердить, что пользователь указал действительный адрес электронной почты во время регистрации.Как правило, вы хотите использовать подтверждение по электронной почте после входа в систему пользователя с помощью firebase.auth().createUserWithEmailAndPassword().

Проверка электронной почты недоступна для других поставщиков аутентификации (таких как Facebook), поскольку у них есть свой собственный способ управления своими пользователями.адреса электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...