Node.js 使用AWS Lambda删除Cognito用户
我想让用户能够在我的android应用程序中删除他们的帐户。我已经用AWS Amplify和AWS Cognito用户池设置了登录/sig-up功能。但是Amplify不提供“删除用户”功能,所以我想使用lambda函数从我的cognito用户池中删除一个用户 当用户单击应用程序中的“删除我的帐户”时,将调用该函数。为了测试该函数,我在Lambda函数中使用了一个硬编码的用户名,而不是将其传递到函数中。但即使这样也不行。部署Lambda函数后,我通过单击控制台中的“Test”来运行该函数。然后,控制台显示Node.js 使用AWS Lambda删除Cognito用户,node.js,aws-lambda,amazon-cognito,Node.js,Aws Lambda,Amazon Cognito,我想让用户能够在我的android应用程序中删除他们的帐户。我已经用AWS Amplify和AWS Cognito用户池设置了登录/sig-up功能。但是Amplify不提供“删除用户”功能,所以我想使用lambda函数从我的cognito用户池中删除一个用户 当用户单击应用程序中的“删除我的帐户”时,将调用该函数。为了测试该函数,我在Lambda函数中使用了一个硬编码的用户名,而不是将其传递到函数中。但即使这样也不行。部署Lambda函数后,我通过单击控制台中的“Test”来运行该函数。然后,
执行结果:successed
,但响应为null
。我会选择状态200或400作为回应。在执行的CloudWatch日志中,我只能看到我的第一条日志语句(“我在这里”),其他两条没有出现。在Cognito控制台中,用户仍然在那里
这是我的Lambda代码(Node.js
):
在我测试此函数之后,用户“5b53…138”仍然存在于我的Cognito用户池“syz…f-dev”中:
这是我在Cloudwatch中找到的日志文件:
我的Lambda函数在这3个策略中起作用,我使用了IAM策略模拟器,并且AmazonCongnitoAuthenticateDidEntities
允许执行操作AdminDeleteUser
,因此这不应该是问题:
- AmazonCongnitoAuthenticateDidEntities
- AmazonCongnitopoweruser
- AWSLambdaBasic执行角色
在CloudWatch中,我可以看到函数已被调用。首先,您或用户池id错误,请打开您的cognito用户池来查找正确的on:在控制台中打开用户池时,您首先看到的是id:
它从您所在的地区开始,后跟一个uu,在您的例子中是eu-central-1_u
然后尝试使用此代码而不是adminDeleteUser函数。那么它应该会起作用:
try {
const data = await cognitoidentityserviceprovider.adminDeleteUser(params).promise();
} catch (error) {
console.log(error);
}
首先,yoor用户池id是错误的,通过打开cognito用户池找到正确的:在控制台中打开用户池时,首先看到的是id:
它从您所在的地区开始,后跟一个uu,在您的例子中是eu-central-1_u
然后尝试使用此代码而不是adminDeleteUser函数。那么它应该会起作用:
try {
const data = await cognitoidentityserviceprovider.adminDeleteUser(params).promise();
} catch (error) {
console.log(error);
}