【发布时间】:2020-09-12 19:42:30
【问题描述】:
我在我的应用程序中使用 AWS Amplify 进行身份验证。我使用电子邮件地址作为 MFA 的用户名和电话号码。但是,我还需要电话号码是唯一的,所以我创建了这个预注册 lambda 触发器:
const aws = require('aws-sdk');
exports.handler = async (event, context, callback) => {
const cognito = new aws.CognitoIdentityServiceProvider();
const params = {
AttributesToGet: [],
Filter: `phone_number = "${event.request.userAttributes.phone_number}"`,
Limit: 1,
UserPoolId: event.userPoolId,
};
try {
const result = await cognito.listUsers(params).promise();
if(result.Users.length === 0) {
callback(null, event);
} else {
const error = new Error("Phone number has already been used.");
callback(error, event);
}
} catch (err) {
console.log(err);
}
};
但是,该函数返回以下错误:
validatePhoneNumber-dev 无权执行:cognito-idp:ListUsers on resource:xxx
我该如何解决?
【问题讨论】:
标签: aws-lambda amazon-cognito aws-amplify