我们已经创建了一个用户池,而没有将电子邮件设置为username
的别名。我们不想经历重新创建用户池的麻烦,但是我们想强制执行唯一的电子邮件。
当用户在我们的网站上注册时,我们使用UserPool.signUp
方法对其进行注册。
export function* registerUser(...) {
...
const userPool = new CognitoUserPool(poolData);
return yield new Promise((resolve, reject) => {
userPool.signUp(username, password, attributes, [], (err, result) => {
if (err) {
reject(err);
}
resolve(result);
});
});
}
当用户提供已经使用的电子邮件时,预注册lambda返回错误。到目前为止一切顺利。
{"__type":"UserLambdaValidationException","message":"PreSignUp failed with error Email already exists."}
但是还有cognitoUser.updateAttributes({ email }, ...)
API,允许用户更改电子邮件。
很遗憾,我在Cognito用户界面中找不到任何updateAttributes
触发器。
是否可以禁止用户更改为已在使用中的电子邮件?