Вы можете интегрировать 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("Unkown error."); } }
Следующие шаги
После того, как пользователь создает новую учетную запись, эта учетная запись сохраняется как часть вашего проекта Firebase и может использоваться для идентификации пользователя во всех приложениях вашего проекта, независимо от того, какой метод входа использовал пользователь.
В своих приложениях вы можете получить основную информацию о профиле пользователя из объекта User
. См. Управление пользователями .
В правилах безопасности Firebase Realtime Database и Cloud Storage вы можете получить уникальный идентификатор вошедшего пользователя из переменной auth
и использовать его для управления тем, к каким данным пользователь может получить доступ.
Вы можете разрешить пользователям входить в ваше приложение с помощью нескольких поставщиков проверки подлинности, связав учетные данные поставщика проверки подлинности с существующей учетной записью пользователя.
Чтобы выйти из системы, вызовите signOut()
:
await FirebaseAuth.instance.signOut();