Reactjs AWS Cognito - как обработать новый пароль требуется - PullRequest
0 голосов
/ 16 ноября 2018

Я использую AWS Cognito Javascript SDK в приложении реагирования. У меня есть пользователь, который был создан в консоли AWS администратором. Пользователь получает электронное письмо со своим именем пользователя и временным паролем. Теперь, основываясь на моем понимании, мне нужно пройти через поток newPasswordRequired, но я боролся с этим уже несколько часов, пробуя несколько разных подходов, и ни один из них никуда меня не привел. Когда я проверяю Консоль AWS, для пользователя в пуле пользователей устанавливается значение FORCE_CHANGE_PASSWORD.

Вот мой код в его текущем состоянии. Пожалуйста, если кто-то может помочь мне решить этот процесс, так как я довольно плохо знаком с использованием аутентификации Cognito.

function setNewPassword(data) {
  console.log("data \n", data)
  var authenticationData = {
    Username: data.username,
    Password: data.temp_password
  };
  var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(
    authenticationData
  );
  var userPool = new AmazonCognitoIdentity.CognitoUserPool(config.cognito);
  var userData = {
    Username: data.username,
    Pool: userPool
  };
  var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
  return new Promise(function(resolve, reject) {
    cognitoUser.authenticateUser(authenticationDetails, {
      onSuccess: function(result) {
        resolve(resolve);
      },
      onFailure: function(err) {
        reject(err);
      },
      newPasswordRequired: function(userAttributes, requiredAttributes) {
        this.cognitoUser.completeNewPasswordChallenge(newPassword, attributesData, this)
      }
    });
  });
}

В консоли браузера появляется следующая ошибка:

{code: "UnknownError", message: "Unkown error"}

1 Ответ

0 голосов
/ 16 ноября 2018

Вы уже обращались за помощью к библиотеке AWS Amplify JS?Существует набор компонентов React, уже созданных для решения подобных задач.Вот ссылка на соответствующую документацию .Код открыт на GitHub, и вы можете просто использовать компонент RequireNewPassword или, по крайней мере, получить от него вдохновение.

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