簡體   English   中英

使用 AWS Lambda 刪除 Cognito 用戶

[英]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 CodeNode.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 ,所以這不應該是問題:

  • AmazonCognitoAuthenticatedIdentities
  • AmazonCognitoPowerUser
  • AWSLambdaBasicExecutionRole

在 CloudWatch 中,我可以看到 function 被調用。

首先,你的用戶池 id 是錯誤的,打開你的 cognito 用戶池找到正確的: 在控制台中打開用戶池時首先看到的是 id:

在此處輸入圖像描述

它以您所在的地區開頭,后跟一個 _,在您的情況下eu-central-1_

然后嘗試使用此代碼而不是您的 adminDeleteUser function。 然后它應該工作:

try {
  const data = await cognitoidentityserviceprovider.adminDeleteUser(params).promise();
} catch (error) {
  console.log(error);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM