我正在使用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);
});
将验证码发送给用户。
那么,无论出于何种原因,如何处理用户问题,而不验证新地址?现在,新地址已经全部存在,可能无效!