目标是将给定的用户添加到给定的组名,但是如果该组不存在,那么我需要创建该组,然后将该用户添加到该组。
cognitoidentityserviceprovider.adminAddUserToGroup(groupParams, function(err, data) {
if (err) {
if (err.message === "Group not found.") {
var params = {
GroupName: userType,
UserPoolId: userPoolId,
Precedence: 5,
// RoleArn: 'STRING_VALUE'
};
cognitoidentityserviceprovider.createGroup(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
cognitoidentityserviceprovider.adminAddUserToGroup(groupParams, function(err, data){
if(err) {
console.log(err, err.stack);
}
else {
console.log(data);
}
});
}
// successful response
});
}
else {
console.log(err, err.stack);
}
} // an error occurred
else console.log(data); // successful response
});
此代码有效,但我担心AWS决定更改错误消息的那一天
答案 0 :(得分:1)
也许您可以利用ListGroups
API调用?
https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListGroups.html
列出池中的所有组,寻找要添加用户的组。如果存在,只需添加用户。如果不存在,请先创建它,然后添加用户。
答案 1 :(得分:0)
我使用error.code“ ResourceNotFoundException”代替了error.mesaage“未找到组”,因为它更可靠并且不太可能被AWS更改。