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

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

Прежде чем начать

  1. Если вы еще этого не сделали, выполните действия, описанные в руководстве по началу работы .
  2. Установите и настройте Firebase Admin SDK . Убедитесь, что вы инициализировали SDK с правильными учетными данными для вашего проекта Firebase.

Аутентификация с помощью Firebase

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

  2. После получения пользовательского токена от вашего сервера аутентификации передайте его в функцию signInWithCustomToken() для авторизации пользователя:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

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

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

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

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

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

Для выхода пользователя из системы вызовите signOut() :

await FirebaseAuth.instance.signOut();