Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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

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

  1. Добавьте Firebase в свой проект JavaScript .
  2. Получите ключи сервера вашего проекта:
    1. Перейдите на страницу сервисных аккаунтов в настройках вашего проекта.
    2. Нажмите « Создать новый закрытый ключ » в нижней части раздела Firebase Admin SDK на странице « Учетные записи служб ».
    3. Пара открытого и закрытого ключей новой учетной записи службы автоматически сохраняется на вашем компьютере. Скопируйте этот файл на свой сервер аутентификации.

Авторизоваться с помощью Firebase

  1. Когда пользователи входят в ваше приложение, отправьте их учетные данные для входа (например, имя пользователя и пароль) на ваш сервер проверки подлинности. Ваш сервер проверяет учетные данные и возвращает пользовательский токен , если они действительны.
  2. После того, как вы получите пользовательский токен с вашего сервера аутентификации, передайте его signInWithCustomToken для входа пользователя:

    Web version 9

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

    Web version 8

    firebase.auth().signInWithCustomToken(token)
      .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.
});