#firebase #dart #flutter #firebase-authentication
#firebase #dart #поддержка #firebase-аутентификация
Вопрос:
Как сделать так, чтобы под одной учетной записью заходил только один пользователь в приложение? Например, я использую flutter firebase auth (электронная почта и пароль), у меня есть учетная запись, и только я могу войти в систему со своего устройства. если кто-то узнает мою учетную запись, он не сможет войти в систему Спасибо!
Комментарии:
1. Вы можете использовать идентификатор устройства для отслеживания уникального устройства по конкретной учетной записи, поэтому, когда пользователь пытается войти с нового устройства, вы можете сообщить ему, что другое устройство уже подключено к этой учетной записи.
2. и как это может быть реализовано? используете analytics?
3. Нет, вы можете использовать device_info
4. итак, я понял, что с помощью device_info я буду получать информацию об устройстве (включая идентификатор устройства), но я не совсем понимаю, как связать это с учетной записью?
5. Хорошо, я просто даю вам очень приблизительное представление, как только у вас будет информация об устройстве, вы можете захотеть загрузить ее в узел с идентификатором устройства как root и иметь информацию об учетной записи как дочернюю.
Ответ №1:
Я просто даю вам идею, как это сделать.
-
В облачном firestore создайте коллекцию с именем
device_ids
. -
Когда пользователь пытается войти в систему, проверьте, присутствует ли идентификатор устройства (скажем,
9876543210
) его телефона в качестве идентификатора документа в вашей коллекцииdevice_ids
. -
Если нет, создайте идентификатор документа с этим идентификатором устройства и в этом идентификаторе документа создайте
email
поле и укажите здесь указанный идентификатор электронной почты и разрешите пользователю зарегистрироваться. -
Если да, перейдите к конкретному идентификатору документа (
9876543210
здесь) и извлекитеemail
(который естьhello@email.com
). Теперь проверьте, ввел ли пользователь это электронное письмо, разрешите ему войти в систему, иначе скажите ему, что выбранный идентификатор электронной почты уже зарегистрирован для этого устройства, и ему нужно войти в систему с идентификатором электронной почты.
Надеюсь, это поможет!
Комментарии:
1. если я вас правильно понял… оказывается, когда я пытаюсь войти в систему с любого адреса электронной почты, сначала программа проверяет, есть ли адрес электронной почты в firestore, если да, блокирует пользовательский интерфейс, а если нет, открывает доступ !? Я просто хочу знать, правильно ли я понял вашу логику.)))
2. Да, вы это немного поняли. Логикой было бы сначала проверить, существует ли идентификатор устройства, если да, проверить наличие адреса электронной почты, связанного с этим идентификатором, если пользователь ввел это электронное письмо, разрешить доступ, иначе заблокировать его.
Ответ №2:
Если вы хотите убедиться только в уникальности приложения, тогда используйте проверку подлинности телефона с помощью Firebase.
Проверка подлинности по телефону отправит OTP на введенный номер телефона для проверки, и доступ к нему может получить только одно устройство, поскольку телефонные номера уникальны.