Управление двумя типами пользователей FIREBASE auth + REACTJS - PullRequest
0 голосов
/ 11 марта 2020

Я создаю систему, в которой есть пользователи и администраторы, администраторы могут делать уникальные вещи, такие как («удаление пользователей / доступ к панели администратора e cc ...»).

Для внешнего интерфейса Я использую ReactJs, для аутентификации я использую firebase auth (которая хранит информацию аутентификации пользователей), а для данных пользователей у меня есть Express API, который сохраняет данные в PostgreSql db.

Таким образом, когда новый пользователь регистрирует электронную почту и пароль, сохраняются в firebase auth, а другие данные, такие как Имя, Фамилия, адрес e cc ... будут храниться в PostgreSQl db, где каждый пользователь идентифицирован из уникального UID, предоставляемого firebase после регистрации.

Ниже небольшой диаграммы, показывающей, как работает система регистрации

enter image description here

Администраторы будет зарегистрирован вручную, и в PostgreSql у меня есть таблица с именем Admins, в которой будут храниться дополнительные данные для администраторов (аналогично данным пользователей, но с большим количеством атрибутов).

Но теперь мой вопрос: как мне проверьте мой интерфейс, если ли зарегистрированный пользователь rrent является администратором или обычным пользователем ??

enter image description here

Возможно, после входа в систему проверяется, находится ли uid зарегистрированного пользователя в таблице Admins postgreSql ? Но это будет слишком дорого с точки зрения исключения права ??? потому что каждая страница перезагружается или повторяется, я должен повторить проверку с бэкэндом. Поскольку firebase управляет пользователями и администраторами одинаково, только мой сервер знает, является ли пользователь администратором.

enter image description here

Кто-нибудь знает, если есть хорошее решение, чтобы справиться с этой ситуацией ??

Спасибо! Давида.

1 Ответ

0 голосов
/ 11 марта 2020

Вероятно, лучше всего использовать функцию setCustomUserClaims администратора Firebase для добавления токена авторизации нового администратора. Вы можете добавить что-то вроде «admin»: true. Затем, когда пользователь аутентифицируется, ваш код внешнего интерфейса может проверить, существует ли этот токен. Вот ссылка на руководство Firebase по этому вопросу: https://firebase.google.com/docs/auth/admin/custom-claims

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