Проверка подлинности Firebase

Firebase Authentication предоставляет серверные службы, простые в использовании SDK и готовые библиотеки пользовательского интерфейса для аутентификации пользователей в вашем приложении. Он поддерживает аутентификацию с использованием паролей, телефонных номеров, популярных федеративных поставщиков удостоверений, таких как Google, Facebook и Twitter, и других.

Авторизация по электронной почте и паролю

1) Зарегистрируйте нового пользователя

Создайте форму, которая позволит новым пользователям регистрироваться в вашем приложении, используя свой адрес электронной почты и пароль. Когда пользователь заполняет форму, проверьте адрес электронной почты и пароль, предоставленные пользователем, а затем передайте их методу createUserWithEmailAndPassword():

<script>
 
  var email="[email protected]";
  var password="password";
  
  //Create User with Email and Password
  firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    console.log(errorCode);
    console.log(errorMessage);
  });
  
</script>

2) Войти в систему

Создайте форму, позволяющую существующим пользователям входить в систему, используя свой адрес электронной почты и пароль. Когда пользователь заполняет форму, вызовите метод signInWithEmailAndPassword():

<script>
  
  var email="[email protected]";
  var password="password";
  
  //Sign In User with Email and Password
  firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    console.log(errorCode);
    console.log(errorMessage);
});
  
</script>

3) Установите наблюдателя состояния аутентификации и получите данные пользователя

Для каждой страницы вашего приложения, на которой требуется информация о вошедшем в систему пользователе, прикрепите наблюдателя к глобальному объекту аутентификации. Этот наблюдатель вызывается при изменении состояния входа пользователя.

Присоедините наблюдателя, используя метод onAuthStateChanged(). Когда пользователь успешно входит в систему, вы можете получить информацию о пользователе в наблюдателе.

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
    var displayName = user.displayName;
    var email = user.email;
    var emailVerified = user.emailVerified;
    var photoURL = user.photoURL;
    var isAnonymous = user.isAnonymous;
    var uid = user.uid;
    var providerData = user.providerData;
    // ...
  } else {
    // User is signed out.
    // ...
  }
});

4) Выйти пользователя

Чтобы выйти из аккаунта пользователя, позвоните signOut():

firebase.auth().signOut().then(function() {
  // Sign-out successful.
  console.log('User Logged Out!');
}).catch(function(error) {
  // An error happened.
  console.log(error);
});

5) Получите данные о текущем вошедшем пользователе

Вы также можете получить текущего пользователя, выполнившего вход, используя свойство currentUser. Если пользователь не вошел в систему, currentUser имеет значение null:

var user = firebase.auth().currentUser;
if (user) {
  // User is signed in.
  if (user != null) {
    name = user.displayName;
    email = user.email;
    photoUrl = user.photoURL;
    emailVerified = user.emailVerified;
    uid = user.uid;  
    // The user's ID, unique to the Firebase project. Do NOT use
    // this value to authenticate with your backend server, if
    // you have one. Use User.getToken() instead.
  }
} else {
  // No user is signed in.
}

6) Обновите сведения о пользователе

Вы можете обновить основную информацию профиля пользователя - отображаемое имя пользователя и URL фотографии профиля - с помощью updateProfile()method. Например:

var user = firebase.auth().currentUser;
user.updateProfile({
  displayName: "Updated User's Name",
  photoURL: "https://example.com/user/profile.jpg"
}).then(function() {
  // Update successful.
  console.log('User Profile Updated Successfully');
}).catch(function(error) {
  // An error happened.
});

7) Установите адрес электронной почты пользователя.

Вы можете установить адрес электронной почты пользователя с помощью метода updateEmail(). Например:

var user = firebase.auth().currentUser;
user.updateEmail("[email protected]").then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

8) Отправьте пользователю письмо с подтверждением.

Вы можете отправить пользователю письмо с подтверждением адреса с помощью метода sendEmailVerification(). Например:

var user = firebase.auth().currentUser;
user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

9) Установите пароль пользователя

Вы можете установить пароль пользователя с помощью метода updatePassword(). Например:

var user = firebase.auth().currentUser;
var newPassword = getASecureRandomPassword();
user.updatePassword(newPassword).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

10) Отправьте электронное письмо для сброса пароля

Вы можете отправить электронное письмо для сброса пароля пользователю с помощью метода sendPasswordResetEmail(). Например:

var auth = firebase.auth();
var emailAddress = "[email protected]";
auth.sendPasswordResetEmail(emailAddress).then(function() {
  // Email sent.
  console.log('Email Sent');
}).catch(function(error) {
  // An error happened.
});

11) Удалить пользователя

Вы можете удалить учетную запись пользователя с помощью метода delete(). Например:

var user = firebase.auth().currentUser;
user.delete().then(function() {
  // User deleted.
  console.log('User Deleted');
}).catch(function(error) {
  // An error happened.
});

Вы также можете удалить пользователей из раздела Аутентификация в консоли Firebase на странице Пользователи.

ПОСМОТРЕТЬ ВИДЕО ЗДЕСЬ ДЛЯ ПОДРОБНОЙ ИНФОРМАЦИИ О Firebase AUTH.

Спасибо

Удачного кодирования!