У меня есть наполовину запущенное приложение, в котором пользователь может зарегистрироваться через форму или через Facebook.
Я пытаюсь сделать следующее, и мне было интересно, соответствует ли это рекомендациям AWS Cognito илиnot.
Регистрация:
- Форма регистрации («локальный пользователь»): пользователь может ввести имя пользователя / пароль с подробной информацией (пол, bday и т. д.).Учетные данные сохраняются в пуле пользователей AWS Cognito и всех других данных профиля в пользовательской базе данных.
- Регистрация через Facebook: пользователь может нажать кнопку входа в Facebook на странице, и после проверки подлинности он имеетзаполнить недостающую информацию (пол, bday и т. д.), если она не предоставлена FB.Информация о профиле будет храниться в той же базе данных, что и для регистрации пользователя через форму.
Пулы:
- Пул пользователей AWS подключен как личностьпровайдер в моем пуле идентификации AWS.
- Facebook подключен к тому же пулу идентификации.
Обработка токена:
- «Локальный пользователь»: я на основена identityId из пула пользователей учетные данные из пула идентификации.Я использую эти учетные данные для доступа к ресурсам в AWS.Учетные данные будут кэшироваться на клиенте в безопасном месте.
- Пользователь Facebook: та же процедура, что и для "локального пользователя".
Мои вопросы:
- Имеет ли смысл общий подход или есть вещи, которые не соответствуют дизайну AWS Cognito?
- Я сохраняю всю информацию профиля («локальный пользователь» и пользователь Facebook) в своей собственной базе данных, потому что янужны более продвинутые возможности запроса / поиска по информации профиля.Cognito не предлагает сложных возможностей поиска.Это плохая практика, если я отделен от пула пользователей, соответственно?Пользовательский пул хранит только логин / пароль локальных пользователей?Каковы недостатки этого подхода?
- Должен ли я создавать пользователя в пуле пользователей для каждой личности Facebook?Если да, то почему?