JavaScript — Форма забытого пароля с использованием AWS Cognito

Форма забытого пароля с помощью AWS Cognito

Я реализую логику забытого пароля с помощью AWS Cognito. Я до сих пор успешно меняю пароль с помощью подсказок, как указано в документации. Вот код

 var username = document.getElementById('reset-pass').value; var data = { UserPoolId: _config.cognito.userPoolId, ClientId: _config.cognito.clientId }; var userPool = new AmazonCognitoIdentity.CognitoUserPool(data); // setup cognitoUser first var cognitoUser = new AmazonCognitoIdentity.CognitoUser({ Username: username, Pool: userPool }); cognitoUser.forgotPassword({ onSuccess: function (result) { console.log('call result: '   result); }, onFailure: function(err) { alert(err); }, inputVerificationCode() { var verificationCode = prompt('Please input verification code ' ,''); var newPassword = prompt('Enter new password ' ,''); cognitoUser.confirmPassword(verificationCode, newPassword, this); } }); 

У меня вопрос вместо использования подсказок, как я могу подтвердить пользователя на следующей странице. пример
На первой странице пользователь вводит электронное письмо, и почта отправляется с помощью forgotPassword() .
Теперь пользователь перенаправлен на новую страницу. Там я хотел ввести код, а также новый пароль и вызвать метод cognitoUser.confirmPassword .

Я попытался создать интервал задержки, и после ввода подробностей он будет вызывать интервал очистки при нажатии кнопки.

  function resetPassword() { var username = document.getElementById('reset-pass').value; var data = { UserPoolId: _config.cognito.userPoolId, ClientId: _config.cognito.clientId }; var userPool = new AmazonCognitoIdentity.CognitoUserPool(data); // setup cognitoUser first var cognitoUser = new AmazonCognitoIdentity.CognitoUser({ Username: username, Pool: userPool }); // call forgotPassword on cognitoUser cognitoUser.forgotPassword({ onSuccess: function (result) { alert("Mail Sent") }, onFailure: function (err) { console.log(err) }, inputVerificationCode() { window.myVar = setInterval(function(){ console.log('check'); }, 10000); var verificationCode = document.getElementById('code').value; var newPassword = document.getElementById('fpass').value; cognitoUser.confirmPassword(verificationCode, newPassword, this); } }); } 

HTML часть кода

 {amp}lt;div class="change"{amp}gt; {amp}lt;form{amp}gt; {amp}lt;label{amp}gt;Enter Email ID{amp}lt;/label{amp}gt; {amp}lt;input type="email" id="reset-pass" required /{amp}gt; {amp}lt;br /{amp}gt; {amp}lt;div class=""{amp}gt;{amp}lt;a href="#" class="btn btn_red" id="next" onclick="resetPassword()"{amp}gt;Next{amp}lt;/a{amp}gt;{amp}lt;/div{amp}gt; {amp}lt;/form{amp}gt; {amp}lt;/div{amp}gt; div class="change-confirm"{amp}gt; {amp}lt;form{amp}gt; {amp}lt;label{amp}gt;Enter Code{amp}lt;/label{amp}gt; {amp}lt;input type="number" id="code" required /{amp}gt; {amp}lt;br /{amp}gt; {amp}lt;label{amp}gt;Enter New Password{amp}lt;/label{amp}gt; {amp}lt;input type="password" id="fpass" required /{amp}gt; {amp}lt;br /{amp}gt; {amp}lt;div class=""{amp}gt;{amp}lt;a href="#" class="btn btn_red" onclick="clearInterval(window.myVar);"{amp}gt; Reset{amp}lt;/a{amp}gt;{amp}lt;/div{amp}gt; {amp}lt;/form{amp}gt; {amp}lt;/div{amp}gt; 

Но приведенный выше код никогда не выполняется. Вместо этого он останавливает выполнение через некоторое время. Итак, мой вопрос, есть ли способ отложить вызов cognitoUser.confirmPassword метода cognitoUser.confirmPassword ? Я не хочу использовать подсказки вместо получения электронной почты и кода в текстовом поле после отправки почты.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector