Как войти в систему только тем пользователям, которые подтвердили адрес электронной почты [дубликаты]

1

У меня есть функция, которая позволяет пользователю регистрироваться или создавать учетную запись. Он также отправляет подтверждение после регистрации. Я хочу, чтобы пользователи, чья электронная почта была проверена для входа в систему. Что мне делать?

Это моя функция входа в систему.

   function signIn() {
   var email = $("#emailtxt").val();
   var password = $("#passwordtxt").val();
   var auth = firebase.auth();        

   firebase.auth().signInWithEmailAndPassword(email, 
   password).then(function(value) {
      //NEED TO PULL USER DATA?                     

      var user = firebase.auth().currentUser;
      if(user){
        console.log(user.uid);
        $("#popup").click();
      }
    }).catch(function(error) {
   // Handle Errors here.
   var errorCode = error.code;
   var errorMessage = error.message;
   if (errorCode === 'auth/wrong-password') {
     alert('Wrong password.');
   } else {
    alert(errorMessage);
  }
  console.log(error);
});
     }
  • 1
    Невозможно требовать, чтобы пользователи имели подтвержденный адрес электронной почты перед входом в систему. Вместо этого вы должны обеспечить, чтобы только пользователи с проверенными адресами электронной почты имели доступ к ресурсам, которые вы пытаетесь защитить. Например, с базой данных Firebase вы должны сделать это в ее правилах безопасности на стороне сервера, как показано здесь: stackoverflow.com/a/38019847 .
  • 0
    хорошо, я попробую ваш совет, сэр. Спасибо
Показать ещё 2 комментария
Теги:
firebase
web
firebase-authentication

1 ответ

0
Лучший ответ

Я надеюсь, что вы можете console.log текущего пользователя

var user = firebase.auth().currentUser;
console.log(user); //there you can see emailVerified boolean object will be available.
if(user.emailVerified){
   // then you can allow your users to be logged in your site.

}
else if(!user.emailVerified){ //send a emailverification mail to the user
  firebase.auth().currentUser.sendEmailVerification().then(function() {
    alert('Email Verification Sent!');
  });

}

Изображение 174551

  • 0
    Да, теперь я могу видеть в консоли, подтвержден ли пользователь или нет, и отключил его для входа, если он не подтвержден. Спасибо, кстати. Вы большая помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню