[英]Using AWS Lambda to delete a Cognito User
我想让用户能够在我的 android 应用程序中删除他们的帐户。 我已经使用 AWS Amplify 和AWS Cognito User Pool
设置了登录/注册功能。 但是 Amplify 不提供“删除用户”功能,所以我想使用 lambda function 从我的 cognito 用户池中删除用户。
function 将在用户点击应用程序中的“删除我的帐户”时被调用。 为了测试 function,我在 Lambda function 中使用硬编码的用户名,而不是将一个用户名传递给 ZC1541AB5.748E786 但即使这样也行不通。 部署 Lambda function 后,我通过单击控制台中的“测试”运行 function。 然后控制台显示Execution result: succeeded
但响应为null
。 我会期望状态 200 或 400 作为响应。 在执行的 CloudWatch 日志中,我只能看到我的第一个日志语句(“我在这里”),其他两个没有出现。 在 Cognito 控制台中,用户仍然存在。
这是我的Lambda Code
( Node.js
):
const AWS = require('aws-sdk');
console.log("I was here");
var params = {
UserPoolId: 'syz****f-dev',
Username: '5b53****138'
};
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({
"region": 'eu-central-1',
});
exports.handler = async (event) => {
cognitoidentityserviceprovider.adminDeleteUser(params, function(err, data) {
if (err) {
var response = {
statusCode: 400,
body: JSON.stringify('Didnt work!'),
};
console.log(err, err.stack);
return response;
}
else {
response = {
statusCode: 200,
body: JSON.stringify('yeah!'),
};
console.log(data);
return response;
}
});
};
在我测试了这个 function 之后,用户“5b53....138”仍然存在于我的 Cognito 用户池“syz....f-dev”中:
这是我在 Cloudwatch 中找到的日志文件:
我的 Lambda Function 对这 3 个策略起作用,我使用了 IAM 策略模拟器,并且 AmazonCognitoAuthenticatedIdentities 允许AdminDeleteUser
AmazonCognitoAuthenticatedIdentities
,所以这不应该是问题:
在 CloudWatch 中,我可以看到 function 被调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.