Я хотел бы подтвердить, что то, что я заметил, является верным в отношении пользовательских пулов Amazon Cognito и Amplify, особенно жирным текстом:
Пул пользователей каталог пользователя в Amazon Cognito. С помощью пула пользователей ваши пользователи могут войти в ваше веб-приложение или мобильное приложение через Amazon Cognito. Ваши пользователи могут также войти через поставщиков социальных сетей, таких как Google, Facebook, Amazon или Apple, а также через поставщиков удостоверений SAML. Независимо от того, входят ли пользователи в систему напрямую или через третью сторону, все члены пула пользователей имеют профиль каталога, к которому вы можете получить доступ через SDK.
До сих пор я настроил приложение для усиления:
- Email / Password Sign-up / Sign-in ( используется
amplify add auth
с именем пользователя в качестве электронной почты) - социальная федерация Google и Facebook (используется
amplify update auth
)
Что я ожидаю:
- Я смогу создать новую учетную запись (
CognitoUser
) с электронной почтой myemail@gmail.com
, используя email / пароль при регистрации. (myemail@gmail.com
еще не был зарегистрирован или связан с какими-либо входами в социальные федерации). Новый аккаунт CognitoUser
не будет создан, если я Google Sign-in с использованием электронной почты Google myemail@gmail.com
. Вместо этого мне будет предоставлена учетная запись / CognitoUser, которую я подтвердил с # 1 после входа в Google.
Независимо от того, войдут ли ваши пользователи непосредственно или через третьих лиц, все члены пула пользователей имеют профиль каталога, к которому вы можете получить доступ с помощью Software Development Kit (SDK).
Что я получаю / Наблюдения:
Я, кажется, получаю (2) уникальных пользователей Cognito для каждого по электронной почте / паролю и методам входа в Google. (см. Прилагаемые Журналы CognitoUser снимки экрана ниже)
Мои вопросы:
Если Сначала я зарегистрировал электронное письмо (myemail@gmail.com
), используя адрес электронной почты / пароль. Получу ли я (2) уникальных пользователей Cognito, если я снова войду в систему с помощью Google (или учетной записи Facebook), который использует тот же адрес электронной почты myemail@gmail.com
?
Если (2) CognitoUsers созданы для того же электронного письма,
- Как запретить создание нового CognitoUser для входа в Google, если электронное письмо уже получено были зарегистрированы с использованием электронной почты / пароля и наоборот?
- Можно ли повторно использовать CognitoUser с помощью адреса электронной почты / пароля при входе в Google с тем же адресом электронной почты?
- Если [2.1] нельзя предотвратить, как лучше всего управлять данными на стороне сервера для 2 CognitoUsers (которые используют один и тот же адрес электронной почты
myemail@gmail.com
)
TIA за ваши идеи и советы!
Журналы CognitoUser
CognitoUser из электронной почты / вход с паролем (myemail@gmail.com
): ![enter image description here](https://i.stack.imgur.com/nYyPD.png)
CognitoUser из входа в Google (Auth.federatedSignIn({provider: 'Google'})
). Адрес электронной почты Google: myemail@gmail.com
: ![CognitoUser - Google Signin](https://i.stack.imgur.com/rTRMH.png)