Поддержка одной учетной записи на устройство

#firebase #dart #flutter #firebase-authentication

#firebase #dart #поддержка #firebase-аутентификация

Вопрос:

Как сделать так, чтобы под одной учетной записью заходил только один пользователь в приложение? Например, я использую flutter firebase auth (электронная почта и пароль), у меня есть учетная запись, и только я могу войти в систему со своего устройства. если кто-то узнает мою учетную запись, он не сможет войти в систему Спасибо!

Комментарии:

1. Вы можете использовать идентификатор устройства для отслеживания уникального устройства по конкретной учетной записи, поэтому, когда пользователь пытается войти с нового устройства, вы можете сообщить ему, что другое устройство уже подключено к этой учетной записи.

2. и как это может быть реализовано? используете analytics?

3. Нет, вы можете использовать device_info

4. итак, я понял, что с помощью device_info я буду получать информацию об устройстве (включая идентификатор устройства), но я не совсем понимаю, как связать это с учетной записью?

5. Хорошо, я просто даю вам очень приблизительное представление, как только у вас будет информация об устройстве, вы можете захотеть загрузить ее в узел с идентификатором устройства как root и иметь информацию об учетной записи как дочернюю.

Ответ №1:

Я просто даю вам идею, как это сделать.

  1. В облачном firestore создайте коллекцию с именем device_ids .

  2. Когда пользователь пытается войти в систему, проверьте, присутствует ли идентификатор устройства (скажем, 9876543210 ) его телефона в качестве идентификатора документа в вашей коллекции device_ids .

  3. Если нет, создайте идентификатор документа с этим идентификатором устройства и в этом идентификаторе документа создайте email поле и укажите здесь указанный идентификатор электронной почты и разрешите пользователю зарегистрироваться.

  4. Если да, перейдите к конкретному идентификатору документа ( 9876543210 здесь) и извлеките email (который есть hello@email.com ). Теперь проверьте, ввел ли пользователь это электронное письмо, разрешите ему войти в систему, иначе скажите ему, что выбранный идентификатор электронной почты уже зарегистрирован для этого устройства, и ему нужно войти в систему с идентификатором электронной почты.

Надеюсь, это поможет!

введите описание изображения здесь

Комментарии:

1. если я вас правильно понял… оказывается, когда я пытаюсь войти в систему с любого адреса электронной почты, сначала программа проверяет, есть ли адрес электронной почты в firestore, если да, блокирует пользовательский интерфейс, а если нет, открывает доступ !? Я просто хочу знать, правильно ли я понял вашу логику.)))

2. Да, вы это немного поняли. Логикой было бы сначала проверить, существует ли идентификатор устройства, если да, проверить наличие адреса электронной почты, связанного с этим идентификатором, если пользователь ввел это электронное письмо, разрешить доступ, иначе заблокировать его.

Ответ №2:

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

Проверка подлинности по телефону отправит OTP на введенный номер телефона для проверки, и доступ к нему может получить только одно устройство, поскольку телефонные номера уникальны.