我正在使用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删除用户”时,本地数据库也将被删除。
任何帮助表示赞赏。
答案 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)