AWS Cognito无法使用AWS SDK删除用户

时间:2018-07-12 16:53:40

标签: aws-sdk aws-cognito aws-sdk-js aws-amplify

我正在使用aws cognito为我的应用程序创建客户并将其id存储在我的数据库中以保留本地记录。 我已经为管理员用户使用了本地数据库。 我已使用AWS Amplify注册​​用户 但是我在以管理员身份登录时删除用户时遇到问题。

我正在使用aws sdk

aws.config.update({
    accessKeyId: "string",
    secretAccessKey: "string",
    region: process.env.REACT_APP_REGION
});


aws.config.credentials = new aws.CognitoIdentityCredentials({
    IdentityPoolId: process.env.REACT_APP_IDENTITYPOOLID,
    AllowUnauthenticatedIdentities: true,
    AccountId: 'string',
    RoleArn: 'arn:aws:iam::string:role/Cognito_WebReactAuth_Role',
});


var params  = {
    UserPoolId: process.env.REACT_APP_USERPOOLID,
    Username: id,
};

var cognitoidentityserviceprovider = new aws.CognitoIdentityServiceProvider();

cognitoidentityserviceprovider.adminDeleteUser(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

但是它给我错误未授权执行sts:AssumeRoleWithWebIdentity和CredentialsError:配置中缺少凭据

我要实现的目标是使用本地数据库以管理员身份登录,并列出本地数据库中的所有客户。当我单击“从Cognito删除用户”时,本地数据库也将被删除。

任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

所有管理服务都可以这样使用。 AWS文档很难理解。 管理员的这个示例应该放在方便的地方。

import aws from 'aws-sdk';

aws.config.accessKeyId = process.env.REACT_APP_AWS_ACCESS_KEY;
aws.config.secretAccessKey = process.env.REACT_APP_AWS_SECRET_ACCESS_KEY;
aws.config.region = process.env.REACT_APP_REGION;

let params = {
   UserPoolId: process.env.REACT_APP_USERPOOLID,
   Username: user.cognitoClientId,
};

let cognitoidentityserviceprovider = new aws.CognitoIdentityServiceProvider();

cognitoidentityserviceprovider.adminDeleteUser(params, function (err, data) 

无需添加关注对象,因为它仅用于前端。

aws.config.credentials = new aws.CognitoIdentityCredentials({
   IdentityPoolId: process.env.REACT_APP_IDENTITYPOOLID,
   AllowUnauthenticatedIdentities: true,
   AccountId: 'string',
   RoleArn: 'arn:aws:iam::string:role/Cognito_WebReactAuth_Role',
});

答案 1 :(得分:0)

enter image description here

enter image description here

enter image description here 删除用户的 lambda 函数,我已经测试过了,它的工作原理。有回应。 确保将 cognitoidentityserviceprovider.adminDeleteuser() 函数设为 await 以获得非空响应。 否则它会来来去去,而无需等待响应