Что такое соглашение, когда пользователь входит в систему с помощью Google OAuth, используя тот же Gmail, который уже использовался для создания учетной записи традиционным способом? - PullRequest
0 голосов
/ 11 января 2020

Я новичок в Google OAuth, поэтому я не слишком знаком с соглашением об аутентификации OAuth. Допустим, пользователь создает учетную запись с some@gmail.com традиционным способом (не связанным с аутентификацией Google). Давайте назовем эту учетную запись A. Когда тот же пользователь входит в систему с помощью Google OAuth, который использует тот же адрес электронной почты some@gmail.com, должен ли пользователь войти в ту же учетную запись A? Это означает, что пользователь сможет видеть в своем профиле одни и те же вещи, в том числе историю покупок, настройки уведомлений и т. Д. c.

. Если да, то каково соглашение о слиянии информации пользователя? Вход в систему с помощью Google предоставляет свои given_name, family_name и photoUrl. И создание учетной записи, традиционно с электронной почтой и паролем, будет иметь собственную регистрацию имени и фотографию профиля.

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

Или вы просто отклоняете как дубликат, когда пользователь пытается создать или войти в систему, когда тот же адрес электронной почты уже существует?

1 Ответ

1 голос
/ 11 января 2020

Если вы хотите разрешить пользователю входить в систему с несколькими провайдерами, вы:

  1. Включите одну учетную запись на адрес электронной почты в панели инструментов Firebase.
  2. Попросите пользователя войти в систему с одним провайдером, скажем, по электронной почте + пароль.
  3. Попросите пользователя войти в систему с провайдером Google, но вместо того, чтобы входить с учетными данными, свяжет Учетная запись провайдера Google с существующей учетной записью электронной почты + пароль .

Теперь пользователь может войти в систему с помощью электронной почты + пароль или Google, и его учетная запись и UID в Firebase будут одинаковыми.

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