【发布时间】:2020-09-11 03:39:03
【问题描述】:
我正在尝试修复我的代码中的一个错误,即每当用户使用相同的电子邮件注册我的应用程序两次时,都没有验证可以阻止它:
这是我的 onSubmit 代码
async function handleSubmit(event) {
event.preventDefault();
setIsLoading(true);
try {
const newUser = await Auth.signUp({
username: fields.email,
password: fields.password,
});
setIsLoading(false);
setNewUser(newUser);
} catch (e) {
console.log(e)
if (e.name === 'UsernameExistsException') {
///current bug if you signup already existing user, it will succeed
setNewUser({
username: fields.email,
password: fields.password,
});
// resend code if user wants ! Add this link
// Auth.resendSignUp(fields.email)
setIsLoading(false);
return
}
onError(e);
setIsLoading(false);
}
}
我可以处理此错误,但不幸的是,如果用户第一次注册并在完成电子邮件代码验证过程之前刷新页面,我会在第二次尝试注册时遇到完全相同的错误,因此,阻止他们的注册。
你如何解决这个问题?我读到我们可以尝试登录用户检查他们的属性,然后将他们注销。
这里是有问题的错误:
{code: "UsernameExistsException", name: "UsernameExistsException", message: "An account with the given email already exists."}
code: "UsernameExistsException"
message: "An account with the given email already exists."
name: "UsernameExistsException"
【问题讨论】:
标签: javascript reactjs amazon-web-services amazon-cognito aws-amplify