Как получить доступ к адресу электронной почты пользователя в Cognito Federated Identities?

Я пытаюсь настроить базовый веб-сайт (без сервера на AWS), который позволил бы посетителям входить в систему с помощью Google и / или Facebook. В настоящее время я планирую использовать S3, Cognito с федеративными удостоверениями, API Gateway, Lambda (NodeJS), с DynamoDB. Клиентское приложение будет использовать Angular.

У меня есть социальный логин с работающими Google и Facebook, и в настоящее время я вставляю строку в таблицу «пользователи», когда пользователь регистрируется в первый раз, которая включает в себя cognitoId, имя, URL-адрес изображения профиля и т. Д.

Я также полагаю, что было бы неплохо сохранить информацию пользователя с адресом электронной почты в качестве ключа, а не что-то вроде cognitoId, чтобы пользователь мог войти в систему с использованием разных провайдеров и увидеть те же данные. Поэтому мне нужно знать адрес электронной почты аутентифицированного пользователя, но я полагаю, что он должен исходить от Cognito, а не от пользователя (поскольку клиентскому приложению нельзя доверять).

Я считаю, что Cognito хранит адрес электронной почты пользователя, потому что я включил это поле в соответствии с требованиями в пуле пользователей.

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

Самое близкое, что я пришел, - это сообщение, но я нигде не могу найти токен доступа:Как получить атрибуты пользователя (имя пользователя, адрес электронной почты и т. Д.), Используя идентификатор идентификации Cognito

Этот пост указывает, что я могу использовать GetUser, но я опять же не знаю, откуда взялся AccessToken:создание пользователя с использованием идентификатора AWS Cognito

Если мне нужно использовать GetUser и AccessToken, откуда он берется и как его генерировать? Это исходит от клиента, или я могу получить его в Lambda, используя AWS.config.credentials?

Я пытался понять это некоторое время, и я чувствую, что упускаю что-то действительно простое!

Ответы на вопрос(3)

Ваш ответ на вопрос