Различный набор аутентификаций для разных приложений в одном проекте Firebase - PullRequest
0 голосов
/ 18 апреля 2020

Я строю систему бронирования и использую Firebase в качестве бэкэнда. Система состоит из двух частей:

  1. клиентская часть, которая является приложением.
  2. деловая сторона, которая является веб-сайтом.

Я использую одна и та же база данных firestore для обоих, а также использующая один и тот же проект аутентификации Firebase.

Итак, мне нужны два набора аутентификации: один для клиента и другой для бизнеса.

Я добавил два приложения в проект Firebase для совместного использования базы данных. Моя проблема заключается в том, что пользователи не должны входить в веб-приложение для бизнеса, используя свои учетные данные, и наоборот.

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

1 Ответ

0 голосов
/ 18 апреля 2020

Аутентификация пользователя с помощью Firebase не определяет, имеет ли пользователь доступ к чему-либо определенному приложением c. Аутентификация - это просто метод, при котором пользователь доказывает, кто он.

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

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

Большинство приложений имеют коллекцию users с документом профиля пользователя для каждого пользователя (используя в качестве ключа свой UID). Затем, после аутентификации пользователя, ваше приложение может прочитать документ профиля пользователя и прочитать, например, два поля с именами isCustomer и isBusiness, чтобы определить, имеет ли пользователь доступ к приложению / сайту. Вы также можете использовать эти поля в правилах безопасности вашей базы данных для предоставления / отказа в доступе.

Альтернативой является предоставление каждому профилю пользователя в Аутентификации Firebase настраиваемого утверждения, чтобы определить, являются ли они являются клиентом и / или бизнесом. В этом случае вам потребуется серверный код , установить пользовательские isCustomer и / или isBusiness заявки и использовать это в своем коде (и базе данных) для предоставления или запрета доступа.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...