Я пытаюсь создать базовый веб-сайт (без сервера AWS), который позволит посетителям войти в систему с Google и/или Facebook. В настоящее время я планирую использовать S3, Cognito с Federated Identities, API Gateway, Lambda (NodeJS), с DynamoDB. Клиентское приложение будет использовать Angular.
У меня есть социальный логин с Google и Facebook, и в настоящее время я вставляю строку в таблицу "users", когда пользователь регистрируется в первый раз, включая URL-адрес cognitoId, имя, URL профиля и т.д.
Я также считаю, что было бы хорошей конструкцией для хранения информации о пользователе с их адресом электронной почты в качестве ключа, а не с помощью чего-то вроде cognitoId, чтобы пользователь мог войти в систему с помощью разных провайдеров и увидеть одни и те же данные. Поэтому мне нужно знать аутентифицированный адрес электронной почты пользователя, но я полагаю, что он должен поступать из Cognito, а не напрямую от пользователя (поскольку клиентскому приложению не следует доверять).
Я считаю, что Cognito хранит адрес электронной почты пользователя, потому что я включил это поле, как требуется, в пул пользователей.
Проблема заключается в том, что я не могу найти информацию о том, как получить адрес электронной почты пользователя от Cognito.
Самое близкое, что я пришел, это сообщение, но я не могу найти токен доступа где угодно: Как получить пользовательские атрибуты (имя пользователя, адрес электронной почты и т.д.) с помощью cognito идентификатор идентификатора
Это сообщение указывает, что я могу использовать GetUser, но я снова не знаю, откуда приходит AccessToken: создание пользователя с использованием азбуки AWS cognito
Если мне нужно использовать GetUser и AccessToken, откуда оно взялось, и как его создать? Это происходит от клиента, или я могу получить его в Lambda, используя AWS.config.credentials?
Я пытался понять это сейчас, и мне кажется, что я пропустил что-то очень простое!