Как исправить ошибку «Клиент пытался написать неавторизованный атрибут» в cognito? - PullRequest
0 голосов
/ 11 января 2019

У меня проблема с регистрацией в 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

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...