Вы можете интегрировать Firebase Authentication с собственной системой аутентификации, изменив свой сервер аутентификации таким образом, чтобы он генерировал пользовательские подписанные токены при успешном входе пользователя в систему. Ваше приложение получает этот токен и использует его для аутентификации в Firebase.
Прежде чем начать
- Если вы еще этого не сделали, выполните действия, описанные в руководстве по началу работы .
- Установите и настройте Firebase Admin SDK . Убедитесь, что вы инициализировали SDK с правильными учетными данными для вашего проекта Firebase.
Аутентификация с помощью Firebase
Когда пользователи входят в ваше приложение, отправьте их учетные данные (например, имя пользователя и пароль) на ваш сервер аутентификации. Ваш сервер проверяет учетные данные и, если они действительны, создает пользовательский токен Firebase и отправляет его обратно в ваше приложение.
После получения пользовательского токена от вашего сервера аутентификации передайте его в функцию
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();