본문 바로가기

카테고리 없음

KH 파이널 프로젝트 비밀번호 변경 구현

function changePassword() {
    const password = document.getElementById('nowPassword').value;
    const updatePassword = document.getElementById('updatePassword').value;
    const checkPassword = document.getElementById('updatePasswordCheck').value;

    // 비밀번호 조건 검증
    if (!validatePassword(updatePassword)) {
        alert('비밀번호는 10자 이상 15자 이하이며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다.');
        return;
    }

    $.ajax({
        url: '/checkPassword',
        data: {
            password: password,
        },
        type: 'post',
        success: function(result) {
            if (result === 'true') {
                updateUserPassword(updatePassword, checkPassword);
            } else {
                alert('잘못된 비밀번호입니다.');
            }
        },
        error: function(err) {
            console.log(err);
        }
    });
}

function updateUserPassword(password, passwordCheck) {
    if (password !== passwordCheck) {
        alert('변경 비밀번호와 비밀번호 확인 값이 다릅니다.');
    } else {
        $.ajax({
            url: '/updatePassword',
            type: 'post',
            data: {
                password: password
            },
            success: function(result) {
                if (result === 'success') {
                    alert('비밀번호가 변경되었습니다.');
                } else {
                    alert('비밀번호 변경에 실패했습니다. 다시 시도해주세요.');
                }
            },
            error: function(err) {
                console.log(err);
                alert('오류가 발생했습니다. 다시 시도해주세요.');
            }
        });
    }
}
function validatePassword(password) {
    const regex = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{10,15}$/;
    return regex.test(password);
}

 

비밀번호 찾기 기능을 구현하는 중 

기능을 성공적으로 잘되었지만 찝찝한 마음이 있었다. 

암호화 처리는 완벽했다고 생각을 했지만 

 

회원가입 때 사용했던 비밀정책과는 맞지 않는 방식이었다 

내가 생각한 비밀번호 정책은 10자 이상15자이상과 특수문자 및 숫자, 영문을 1자라도 포함한 

비밀번호 정책이었지만 먼저 만들어둔 코드에는 그러한 조건이 없었다 즉 

숫자 1이라고 입력을 하고 입력된 비밀번호와 체크된 비밀번호 값이 맞으면 

비밀번호가 변경이 되는 거였다.

 

내가 이러한 과정을 겪으면서 느낀 점은 

급한 마음을 가진 시기일 수록 다시 한 번 생각을 해보고 

여유를 갖는 것이 오히려 시간을 단축하는 일이겠구나 싶었다