Я использую AWS Cognito для регистрации пользователей.Все работает хорошо, но я замечаю, что когда пользователь меняет свой адрес электронной почты, адрес изменяется, но помечается как непроверенный (email_verified имеет значение false).
Затем на новый адрес электронной почты отправляется электронное письмо с кодом подтверждения, который пользователь должен затем вернуть в Cognito для проверки нового адреса электронной почты.Получив код, Cognito затем устанавливает для email_verified значение true.
Однако, если пользователь не возвращает код подтверждения, адрес электронной почты остается помеченным как непроверенный (как и должно быть).
НОчто если пользователь допустил ошибку в предоставленном им новом адресе электронной почты (например, орфографическую ошибку), он не получит проверочный код (кто-то другой может, но не знает, что с ним делать).
Итак, у меня теперь есть ложный адрес электронной почты, и я не могу связаться с пользователем, если мне нужно.
Разве Cognito не должен сохранять старый адрес электронной почты и менять его только после того, как новый адрес получитпроверено?
Я использую
Auth.updateUserAttributes(user, attributes);
для обновления адреса электронной почты - это устанавливает новый адрес электронной почты и помечает email_verified как false.
Затем я использую
Auth.verifyCurrentUserAttribute("email", this.email).then(response => {
alert('Email changed but needs to be verified. Check your email for verification code.');
this.showVerificationCodeForm = true;
}).catch(err => {
alert('Email changed but problem getting verification code: ' + err.message);
});
чтобы отправить код подтверждения пользователю.
Так как же решить проблему пользователя, по какой-то причине, не проверяя новый адрес?Теперь у меня есть новый адрес, и он может быть недействительным!