Как разрешить пользователям приложения изменять свои пароли, используя свои текущие пароли через AWS-cognito? - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно разрешить пользователям менять свои пароли по желанию через aws-cognito, не выполняя сброс «забытого пароля».Он должен использовать свои старые пароли.

Это JSFiddle о том, как я пытаюсь сделать это в Cognito

пароль может быть сброшен с помощью «забыл пароль» иэто работает нормально.но я не смог найти никакой документации от Amazon Web Services.Пожалуйста, помогите!

<div id="changePassForm" class="modal fade" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-body">
            <div class="ibox-content">
                <form id="changePasswordForm" method="post" role="form">
                    <div class="row" id="pwd-container1">
                        <div class="col-sm-12">
                            <h2 class="text-center"><strong>Change Password</strong></h2>
                            <div class="form-group"><input id="currentPassword" type="password" placeholder="Old Password" class="form-control" required></div>
                            <div class="form-group"><input id="newPassword" type="password" placeholder="New Password" class="form-control password1" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" required></div>
                            <div class="form-group"><div class="pwstrength_viewport_progress"></div></div>
                            <div class="form-group"><input id="confirmPassword" type="password" placeholder="Confirm Password" class="form-control" required></div>
                            <div class="form-group"><button type="submit" class="btn btn-primary block full-width m-b"><strong>Change</strong></button></div>
                            <div class="form-group"><p>New Password Must Include:<br>- At least 8 or more characters,<br>- At least one number,<br>- At least one uppercase letter, and,<br>- At least one lowercase letter</p></div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

function changePassword(email, oldPassword, password, onSuccess, onFailure) { createCognitoUser(email).changePassword(oldPassword, password, function changePasswordCallback(err, result) { if (!err) { console.log('call result: ' + result); onSuccess(result); } else { onFailure(err); } } ); }

$(function onDocReady() {
    $('#changePasswordForm').submit(handleChangePassword);
});

    function handleChangePassword(event) {
    var oldPassword = $('#currentPassword').val();
    var password = $('#newPassword').val();
    var password2 = $('#confirmPassword').val();
    var email = sessionStorage.getItem("changePassEmail");

    var onSuccess = function changePasswordSuccess(result) {
        var cognitoUser = result.user;
        console.log('user name is ' + cognitoUser.getUsername());
        var confirmation = ('Password change successful');
        if (confirmation) {
            alert('Password successfully changed');
        }
    };
    var onFailure = function changePasswordFailure(err) {
        alert(err);
    };
    event.preventDefault();

    if (password === password2) {
        changePassword(email, oldPassword, password, onSuccess, onFailure);
    } else {
        alert('Passwords do not match');
    }
}
...