#firebase #authentication #firebase-authentication
#firebase #аутентификация #firebase-аутентификация
Вопрос:
Я совсем новичок в firebase, и я ищу лучшие практики его использования, возможно, я смогу получить здесь несколько советов. Что я хочу сделать: вход пользователя с помощью firebase.
Проблема: я сохраняю информацию о пользователе в firebase, но использую SQL server в качестве базы данных, где мне нужна эта информация о пользователе в качестве идентификатора пользователя
Вопрос: Как мне к этому подойти? Зарегистрируйте пользователя в firebase, и когда я получу ответ с идентификатором пользователя и токеном, сохраните его и в моей базе данных sql?
каков мой текущий подход: на данном этапе мы думаем о создании новых пользователей через панель администратора (и тогда эти пользователи смогут войти в систему) Было бы неплохо добавить пользователя в базу данных sql, отправить электронное письмо для завершения регистрации (создать пароль), а затем добавить этого пользователя в firebase и с ответомотправить запрос на мой серверный сервер, где я сообщаю пользователю, что он прошел проверку, добавляю идентификатор пользователя и токен?
Ответ №1:
Очень часто дополнительную информацию о пользователях аутентификации Firebase хранят в вашей собственной базе данных. Хорошо ли это в вашем случае использования, субъективно, но это определенно распространено.
Предполагая, что у вас есть сервер, взаимодействующий с SQL server от имени пользователя, обязательно передайте токен ID от клиента на сервер, расшифруйте его там, а затем используйте UID (и другие утверждения) из этого токена при взаимодействии с базой данных. Не разрешайте пользователю просто передавать свой UID, так как это может представлять угрозу безопасности.
Подробнее об этом сценарии см. Документацию Firebase по проверке пользователя с помощью его идентификационного токена.
Ваш подход с помощью панели администратора — это обычный первый подход, но я бы не рекомендовал. Поскольку вам нужно будет разрешить пользователю входить в систему с помощью электронной почты / пароля, ничто не мешает им самим вызывать createUserWithEmailAndPassword
API в вашем проекте. Поэтому я бы рекомендовал полностью оставить создание клиентам и избавить себя от необходимости рассматривать этот сценарий злоупотребления.
Если вы хотите контролировать, какие пользователи получают доступ к данным, сохраните список адресов электронной почты (поскольку вы, похоже, уже связываете это с уникальной идентификацией пользователя) в базе данных и проверьте, что адрес электронной почты в токене ID находится в списке (и помечен как проверенный в токене).).