[英]How to delete the Cognito user in Node.js?
How to delete user account from * cognito * in nodejs.如何在 nodejs 中从 * cognito * 中删除用户帐户。
I'm trying to delete the user from cognito it is not working for me.我正在尝试从cognito中删除用户,但它对我不起作用。
AWS config AWS 配置
const AWS = require('aws-sdk'); const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
Pool config池配置
const poolConfig = { UserPoolId: keys.cognito.userPoolId, ClientId: keys.cognito.clientId };
Above configurations comes on top of below delete function.上面的配置是在下面删除 function 之上的。
Delete Function删除 Function
function deleteUserFunc(req, decodedToken) {
return new Promise((resolve, reject) => {
const decodedEmailid = decodedToken.email;
const decodedSub = decodedToken.sub;
try {
const userDetails = { Username: decodedSub, Pool: userPool };
console.log('DEBUG : ' + JSON.stringify(userDetails));
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userDetails);
// Attempting to delete the user
cognitoidentityserviceprovider.adminDeleteUser({
UserPoolId: keys.cognito.userPoolId,
Username: decodedEmailid
}, (err, data)=>
if(err) {
return reject({
error: err.message
});
} else {
return resolve({
error: null
});
}
}).promise().catch(err=>{
return reject({
error: err.message
});
});
console.log('User deleteion status : ' + result);
return resolve({
error: null,
});
});
} catch (err) {
return reject({
error: err,
});
}
});
}
I have also tried to delete the user with const userDetails = { Username: decodedEmailId, Pool: userPool }
but no use.我还尝试使用
const userDetails = { Username: decodedEmailId, Pool: userPool }
删除用户,但没有用。
Any help will much appreciated.任何帮助将不胜感激。
Try this:尝试这个:
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: 'access key id',
secretAccessKey: 'secret access key',
region: 'region',
});
const cognito = new AWS.CognitoIdentityServiceProvider();
await cognito.adminDeleteUser({
UserPoolId: 'pool id',
Username: 'username',
}).promise();
Note that the access token you're using within sdk should have cognito-idp:AdminDeleteUser
permission on required pool.请注意,您在 sdk 中使用的访问令牌应该对所需池具有
cognito-idp:AdminDeleteUser
权限。
The original answer by @Vladyslav Usenko helped me implement this newer version using the latest aws libraries. @Vladyslav Usenko 的原始答案帮助我使用最新的 aws 库实现了这个较新的版本。
https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cognito-identity-provider/index.html https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cognito-identity-provider/index.html
The documentation by AWS is very generic and difficult to figure out a solution, but here's an example that should help others. AWS 的文档非常通用,很难找出解决方案,但这里有一个示例,应该可以帮助其他人。
const {
CognitoIdentityProviderClient,
AdminDeleteUserCommand,
} = require("@aws-sdk/client-cognito-identity-provider");
const client = new CognitoIdentityProviderClient({ region: 'region-goes-here' });
var adminDeleteUserCommandInput = {
UserPoolId: 'user-pool-here',
Username: 'user-name-here'
};
const adminDeleteUserCommandResults = await client.send(new AdminDeleteUserCommand(adminDeleteUserCommandInput));
console.log("adminDeleteUserCommandResults", adminDeleteUserCommandResults);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.