stackoverflow.com/a/47968938/5702727

о, я сейчас в этом и добился значительного прогресса, но все еще полностью озадачен основами.

Мое приложение использует Cognito User Pools для создания и управления пользователями - они идентифицируются на S3, похоже, по их IdentityId. У каждого из моих пользователей есть своя собственная папка S3, и AWS автоматически присваивает им имя папки, равное IdentityId пользователя.

Мне нужно связать IdentityId с информацией о других пользователях Cognito, но я не могу понять, как это сделать.

Главное, что мне нужно, это уметь идентифицировать имя пользователя и другие атрибуты Cognito для данного IdentityId - и это безумно сложно.

Итак, первое сражение состояло в том, чтобы выяснить, как получить IdentityId, когда пользователь Cognito делает запрос через AWS API Gateway. Наконец-то я с этим справился, и теперь у меня есть пользователь Cognito, который выполняет запрос к шлюзу API, и моя функция Lambda, стоящая за этим, теперь имеет IdentityId. Этот бит работает.

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

Похоже, что если я использую «пул пользователей Cognito» для авторизации моего метода в API Gateway, то шаблон сопоставления тела можно использовать для помещения в контекст информации о пользователе Cognito, такой как подпрограмма, имя пользователя и адрес электронной почты, НО я делаю НЕ получить IdentityId.

НО если я используюAWS_IAM чтобы авторизовать мой метод в шлюзе API, тогда шаблон отображения тела выполняет обратное действие - он дает мне IdentityId, а не пользовательские поля Cognito, такие как sub, username и email.

Это сводит меня с ума - как я могу собрать IdentityId и все пользовательские поля и атрибуты Cognito в одну структуру данных? Тот факт, что мне кажется, что я могу получить только одно или другое, просто не имеет смысла.

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

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