Аутентификация Firebase для частного сервера - PullRequest
0 голосов
/ 09 сентября 2018

Я занимаюсь разработкой приложения для флаттера и хочу использовать службу аутентификации Firebase, чтобы мои пользователи могли зарегистрироваться / войти, используя:

  • электронная почта / передача
  • Google
  • facebook

У меня есть REST-сервер lumen с базой данных MySQL.

Проблема: при просмотре множества документов по пожарной базе я не могу понять весь поток того, как это должно работать.

Я могу успешно создавать пользователей с помощью приложения, и они появляются в консоли Firebase, однако я не знаю, как разрешить им безопасно общаться с моим внутренним сервером.

Я ожидаю, что Firebase выпустит маркеры доступа и обновления, которые я смогу использовать для личного общения между приложением и бэкендом, как это делает AWS cognito. Вместо этого он выдает «ID Token», который является токеном JWT и должен быть проверен на бэкэнде. Но что мне делать, когда это проверено?

Как связать моих пользователей в моей базе данных с аутентифицированным пользователем? Что нужно хранить в базе данных для сопоставления с аутентифицированным пользователем?

Нужно ли создавать собственные токены через Admin SDK?

Или токен ID - это то, что должно передаваться от клиента к бэкэнду при каждом запросе и затем проверяться? Но все же, что я положу из этого идентификатора в мою базу данных, чтобы связать аутентифицированного пользователя с его данными?

1 Ответ

0 голосов
/ 14 сентября 2018

Вот как я это делаю сейчас. Отлично работает.

  1. Установите Firebase Admin SDK на ваш сервер, если вы используете php, вот что я следовал и работал безупречно: PHP Firebase Admin SDK
  2. Aquire Firebase idToken используя Firebase SDK в вашем клиенте (приложении), я использовал для этого Firebase auth package .
  3. Отправка idToken на ваш бэкэнд
  4. Используйте Admin SDK для проверки idToken . Если проверка прошла успешно, вы возвращаете пользовательский объект firebase. И вы можете выполнять различные действия по управлению (изменять, удалять, получать разные данные и т. Д.).
  5. Получите uid от пользователя Firebase.
  6. Храните uid в вашей базе данных.
  7. Теперь каждый раз, когда этот аутентифицированный пользователь делает запрос к вашему внутреннему серверу, вы присоединяете idToken к заголовку запроса.
  8. Каждый раз, когда вы проверяете (см. Шаг 4) idToken на своем внутреннем сервере, и, если проверка прошла успешно, вы извлекаете uid, чтобы узнать, какого пользователя запрашивать в вашей базе данных.

Любые комментарии / улучшения по этому поводу приветствуются:)

...