要防止在AWS Cognito中创建重复的手机号,可以使用AWS Lambda函数来实现自定义的验证逻辑。以下是一个示例代码,用于在用户注册时检查手机号是否已经存在:
const AWS = require('aws-sdk');
const cognito = new AWS.CognitoIdentityServiceProvider();
exports.handler = async (event) => {
const phoneNumber = event.request.userAttributes.phone_number;
// 检查手机号是否已存在
const users = await cognito.listUsers({
UserPoolId: event.userPoolId,
Filter: `phone_number = "${phoneNumber}"`
}).promise();
if (users.Users.length > 0) {
// 手机号已存在,抛出异常
throw new Error('手机号已被注册');
}
return event;
};
在AWS Lambda控制台中,将此代码粘贴到Lambda函数的代码编辑器中。然后,将此函数配置为Cognito用户池的“预注册”触发器。
当用户尝试注册时,Lambda函数将被触发,并检查手机号是否已经存在于用户池中。如果手机号已存在,Lambda函数将抛出一个错误,阻止用户的注册。
这样,就可以通过自定义Lambda函数来防止在AWS Cognito中创建重复的手机号。您可以根据需要进行修改和调整。