Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Эта страница переведена с помощью Cloud Translation API.
Switch to English

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

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

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

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

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

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

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

    Интернет v8

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

    Интернет v9

    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;
        // ..
      });
    Если новая учетная запись была создана, пользователь входит в систему автоматически. Ознакомьтесь с разделом «Дальнейшие действия» ниже, чтобы получить данные пользователя, выполнившего вход.

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

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

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

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

    Интернет v8

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

    Интернет v9

    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;
      });
    Ознакомьтесь с разделом «Дальнейшие действия» ниже, чтобы получить данные пользователя, выполнившего вход.

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

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

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

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

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

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

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

Интернет v8

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

Интернет v9

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

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