Цель состоит в том, чтобы реализовать поток аутентификации поставщика социальных сетей, как описано в Пулы пользователей. Интеграция приложений и федерация.
Одна важная вещь, которой я хочу удовлетворить, - это объединить учетные записи пула пользователей с одним и тем же адресом электронной почты.
Я добиваюсь этого, вызывая adminLinkProviderForUser внутри PreSignUp_ExternalProvider когнитивный лямбда-триггер.
Так что с этим все работает. Новый пользователь, предоставленный социальной сетью, регистрируется и связывается с уже существующим пользователем Cognito (пользователь + пароль).
Однако процесс аутентификации с точки зрения пользователя не завершен. Он терпит неудачу на последнем шаге, когда вызывается uri обратного вызова (определенный в пользовательском пуле когнито):
ошибка: invalid_request
error_description: Уже найдена запись для имени пользователя Facebook_10155611263152353
Но затем, если пользователь повторяет поток социальной аутентификации, все работает и получит токены сеанса, которые представляют исходного пользователя пула пользователей Cognito (того, у которого уже было это электронное письмо).
Обратите внимание, что я тестирую поток аутентификации на пустом пуле пользователей, без учетных записей пользователей.