Check out what’s new from Firebase at Google I/O 2022. Learn more

Аутентификация в Firebase с использованием учетных записей на основе пароля с использованием Javascript

Вы можете использовать Firebase Authentication, чтобы ваши пользователи могли проходить аутентификацию в Firebase, используя свои адреса электронной почты и пароли, а также управлять учетными записями вашего приложения на основе паролей.

Прежде чем вы начнете

  1. Добавьте Firebase в свой проект JavaScript .
  2. Если вы еще не подключили свое приложение к проекту Firebase, сделайте это из консоли Firebase .
  3. Включить вход по электронной почте/паролю:
    1. В консоли Firebase откройте раздел Auth .
    2. На вкладке « Метод входа » включите метод входа по электронной почте/паролю и нажмите « Сохранить » .

Создайте учетную запись на основе пароля

Чтобы создать новую учетную запись пользователя с паролем, выполните следующие действия на странице регистрации вашего приложения:

  1. Когда новый пользователь регистрируется с помощью формы регистрации вашего приложения, выполните все шаги проверки новой учетной записи, которые требуются вашему приложению, например, убедитесь, что пароль новой учетной записи был правильно введен и соответствует вашим требованиям сложности.
  2. Создайте новую учетную запись, передав адрес электронной почты и пароль нового пользователя в createUserWithEmailAndPassword :

    Web version 9

    import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    createUserWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed in 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ..
      });

    Web version 8

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in 
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ..
      });
    Если новая учетная запись была создана, пользователь автоматически входит в систему. Просмотрите раздел «Следующие шаги» ниже, чтобы получить сведения о вошедшем в систему пользователе.

    Здесь также можно ловить и обрабатывать ошибки. Список кодов ошибок можно найти в Справочной документации по аутентификации.

Войдите в систему с адресом электронной почты и паролем

Шаги для входа пользователя с паролем аналогичны шагам для создания новой учетной записи. На странице входа в приложение выполните следующие действия.

  1. Когда пользователь входит в ваше приложение, передайте адрес электронной почты и пароль пользователя в signInWithEmailAndPassword :

    Web version 9

    import { getAuth, signInWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    signInWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed in 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
      });

    Web version 8

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
      });
    Просмотрите раздел «Следующие шаги» ниже, чтобы получить сведения о вошедшем в систему пользователе.

    Здесь также можно ловить и обрабатывать ошибки. Список кодов ошибок можно найти в Справочной документации по аутентификации.

Следующие шаги

После того, как пользователь входит в систему в первый раз, создается новая учетная запись пользователя и связывается с учетными данными, т. е. с именем пользователя и паролем, номером телефона или информацией о поставщике проверки подлинности, с которыми пользователь вошел в систему. Эта новая учетная запись хранится как часть вашего проекта Firebase и может использоваться для идентификации пользователя во всех приложениях вашего проекта, независимо от того, как пользователь входит в систему.

  • В ваших приложениях рекомендуемым способом узнать статус аутентификации вашего пользователя является установка наблюдателя на объект Auth . Затем вы можете получить основную информацию о профиле пользователя из объекта User . См. Управление пользователями .

  • В правилах безопасности базы данных Firebase Realtime и облачного хранилища вы можете получить уникальный идентификатор пользователя, вошедшего в систему, из переменной auth и использовать его для управления тем, к каким данным пользователь может получить доступ.

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

Чтобы выйти из системы, вызовите signOut :

Web version 9

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web version 8

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});