Я использую AWS Cognito в качестве IDP и AWS Библиотека для усиления с приложением Angular. У меня также есть основное приложение. net, которое использует AWS Cognito SDK для выполнения действий администратора (например, пользовательские настройки). Теперь, когда администратор обновляет электронную почту любого пользователя, я изменяю email_verified на false, чтобы пользователь сначала проверил свою электронную почту. У меня есть лямбда-триггер, который генерирует ссылку и добавляет код подтверждения в URL, например, http://example.com/username/code
. Я также создал один компонент в своем приложении Angular для извлечения кода из URL, проверки электронной почты пользователя и перенаправления его / ее на страницу входа.
Теперь проблема в том, что я не могу найти такой метод в AWS усилить, что может проверить электронную почту пользователя, не прошедшего проверку подлинности. Есть несколько методов, которые ожидают currentUser (аутентифицированного пользователя), но в моем сценарии пользователь не будет авторизован, так как администратор обновил электронную почту, а также я использую электронную почту для входа, а не имя пользователя. Таким образом, только когда электронная почта подтверждена, я могу позволить пользователю войти в систему.
Я также пытался использовать метод confirmSignUp()
в AWS Усиление, но выдает исключение "Неверный код", и это потому, что статус учетной записи пользователя уже подтверждено, только поле email_verified имеет значение false;
Как проверить электронную почту пользователя с помощью кода подтверждения?