Почему я получаю неизвестную ошибку при попытке войти в систему с помощью настройки пользователя в AWS-cognito CL? - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь создать страницу входа для моего приложения. Это чистый HTML CSS и JS. Я создал пользователя в AWS-cognito cl, но когда я пытаюсь использовать учетные данные, он не может войти в систему, и единственное, что я получаю, это то, что это неизвестная ошибка.

Я пытался найти что-то вокруг этого, но ничего не происходит. Многие ответы, которые мне удалось найти, относятся к функции newPasswordRequired или к версии используемого SDK. Я дважды проверил и трижды проверил мой идентификатор пула пользователей и идентификатор клиента.

function signInButton() {

    var authenticationData = {
        Username : document.getElementById("inputUsername").value,
        Password : document.getElementById("inputPassword").value,
    };

    var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);

    var poolData = {
        UserPoolId : _config.cognito.userPoolId, 
        ClientId : _config.cognito.clientId,
    };

    var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

    var userData = {
        Username : document.getElementById("inputUsername").value,
        Pool : userPool,
    };

    var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);

    cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: function (result) {
            resolve(result.getAccessToken().getJwtToken());
        },
        onFailure: function (err) {
            console.log("Error from cognito promise: ", err);

        },
        newPasswordRequired: function (userAttributes) {
            delete userAttributes.email_verified;
            cognitoUser.completeNewPasswordChallenge(newPassword, userAttributes, this);
        }
    });

    };

Что яЯ хотел бы, чтобы он явно входил и заходил на назначенную страницу, я знаю, что функция ошибки работает, потому что до этого я действительно получал информацию. Я не хочу или не нуждаюсь в MFA для этого, либо я просто хочу войти в систему с пользователем и передать, что было настроено администратором, возможно, я установил что-то неправильно в cl.

1 Ответ

0 голосов
/ 14 октября 2019

Умная вещь, которую нужно сделать здесь, это посмотреть, как я справляюсь с функцией newPassword. Я не давал ему способа или возможности изменить пароль, поскольку мое приложение требует, чтобы пользователю был предоставлен логин, созданный администратором, который требует от пользователя сменить пароль при входе.

        newPasswordRequired: function (userAttributes,requiredAttributes) {
            delete userAttributes.email_verified;
            let attributesData = {name: authenticationData.Username}
            var newPassword = prompt('Enter new password ' ,'');
            cognitoUser.confirmPassword( newPassword, this);
            cognitoUser.completeNewPasswordChallenge(newPassword, attributesData, this);
        }
...