[英]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.