У меня проблема с регистрацией в Cognito, иногда она показывает ошибку, как показано ниже:
{
"code": "NotAuthorizedException",
"name": "NotAuthorizedException",
"message": "A client attempted to write unauthorized attribute"
}
Если я повторно разверну код, проблема будет исправлена автоматически или несколько раз автоматически, без какого-либо развертывания. Я использую 3 пользовательских атрибута и 2 атрибута (имя, адрес электронной почты), все они авторизованы для моего клиента Cognito. Вот мой код
function signUp(user) {
let userData = {
Username: user.email,
Pool: userPool
};
let cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
var dataEmail = {
Name: 'email',
Value: user.email
};
var dataName = {
Name: 'name',
Value: user.first_name
};
var dataLName = {
Name: 'custom:last_name',
Value: user.last_name
};
var dataFName = {
Name: 'custom:first_name',
Value: user.first_name
};
var dataRealm = {
Name: 'custom:type',
Value: user.type
};
var attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute(dataEmail);
var attributeName = new AmazonCognitoIdentity.CognitoUserAttribute(dataName);
var attributeRealm = new AmazonCognitoIdentity.CognitoUserAttribute(dataRealm);
var attributeLastName = new AmazonCognitoIdentity.CognitoUserAttribute(dataLName);
var attributeFirstName = new AmazonCognitoIdentity.CognitoUserAttribute(dataFName);
attributeList.push(attributeEmail);
attributeList.push(attributeName);
attributeList.push(attributeRealm);
attributeList.push(attributeLastName);
attributeList.push(attributeFirstName);
if (user.type == 2) {
userPool.signUp(email, password, attributeList, null, (err, result) => {
if (err) {
console.log("Error in createUser : cognito_helper", err);
console.log(err)
reject(err);
} else {
resolve(result);
}
})
} else {
let emailVerified = {
Name: 'email_verified',
Value: "false"
}
var attributeEmailVerified = new AmazonCognitoIdentity.CognitoUserAttribute(emailVerified);
attributeList.push(attributeEmailVerified);
let password = "*******"
let tempPassword = crypto.createHash('md5').update(password).digest('hex').substring(0, 17);
console.log(tempPassword)
let params = {
UserPoolId: config.awsConfiguration.cognitoUserPoolId,
Username: email,`enter code here`
DesiredDeliveryMediums: [
"EMAIL"
],
UserAttributes: attributeList,
TemporaryPassword: tempPassword
};
cognitoidentityserviceprovider.adminCreateUser(params, function (err, result) {
if (err) {
console.log("Error in createUser : cognito_helper", err);
reject(err);
} else {
resolve(result)
}
});
}
}
Проблема не отображается при создании пользователя с adminCreateUser
, только с signUp
Заранее спасибо.