[spring]회원정보 수정 - 비밀번호 체크하기

2024. 10. 13. 23:47·SPRING

회원정보를 수정하거나 로그인할때 비밀번호가 일치하는지 확인하는 로직이다. 민감한 정보를 확인할 때 많이 쓰인다.

	@RequestMapping("/CheckPassword")
	public ModelAndView checkPassword(String userid, String inputPassword) {
	    // DB에서 사용자 정보 조회
	    UserVo user = userMapper.getUser(userid);
	    ModelAndView mv = new ModelAndView();
	    
	    // 입력된 비밀번호가 null이거나 비어있는 경우
	    if (inputPassword == null || inputPassword.isEmpty()) {
	        mv.setViewName("users/checkPassword1");
	        return mv;
	    }
	    
	    // 입력된 비밀번호와 DB의 비밀번호를 비교
	    if (user.getPasswd().equals(inputPassword)) {
	        // 비밀번호가 일치하면 수정 페이지로 이동
	        mv.setViewName("redirect:/Users/UpdateForm?userid=" + userid);
	    } else {
	        // 비밀번호가 틀리면 오류 메시지와 함께 비밀번호 확인 페이지로 다시 이동
	        mv.setViewName("users/checkPassword");
	        mv.addObject("error", "비밀번호가 일치하지 않습니다.");
	    }

	    return mv;
	}
  • 매개변수: 요청으로부터 userid와 inputPassword를 받는다.
  • 비밀번호가 일치하지 않는 경우, users폴더의 checkPassword을 html로 보여주고, 비밀번호가 일치하지 않는다는 오류 메시지를 추가한다.userid는 히든 필드로 전송되고, 비밀번호 입력 필드는 inputPassword라는 이름을 가진다.
💡     // 입력된 비밀번호가 null이거나 비어있는 경우
    if (inputPassword == null || inputPassword.isEmpty()) {
        mv.setViewName("users/checkPassword1");
        return mv;
    }

이 부분을 안넣으면 비밀번호 체크화면을 키자마자 바로 "비밀번호가 일치하지 않습니다." 오류가 뜨는데, 처음에는 왜 이렇게 되는지 몰라서 좀 헤메었다. 그런데 inputPassword을 sysout 했을때 null이 먼저 뜨길래 위 로직을 추가했다. 계속 쳐다보고 있는다고 해결되는 것도 없고 한숨 돌리고 나서야 어떻게 수정하면 될지 보였다.

 

  <main>
    <h2>비밀번호 확인</h2>
    <form action="/Users/CheckPassword" method="POST">
      <input type="hidden" name="userid" value="${param.userid}" />
      <table>
        <tr>
          <td>비밀번호</td>
          <td><input type="password" name="inputPassword" required /></td>
        </tr>
        <tr>
          <td colspan="2">
            <input type="submit" value="확인" id="check"/>
          </td>
        </tr>
        
      </table>
    </form>
   <script>
      // 서버에서 전달된 error 메시지가 있을 경우 alert로 출력
      <% if (request.getAttribute("error") != null) { %>
        alert("<%= request.getAttribute("error") %>");
      <% } %>
    </script>
  </main>

 

  • userid가 없으면 서버는 어떤 사용자의 비밀번호를 확인해야 하는지 알 수 없으므로,  hidden으로 불러온다
  • error속성을 불러와서 비밀번호가 일치하지 않을 경우 error메시지를 출력한다.

'SPRING' 카테고리의 다른 글

[spring] Dao와 Service  (2) 2024.11.04
[Spring] 페이징(Pagination)  (0) 2024.10.20
[spring] 회원가입 - 아이디 중복 체크하기  (0) 2024.10.13
[spring] 파라미터 다루기  (0) 2024.10.10
[spring]스프링 부트 MVC구조  (3) 2024.10.08
'SPRING' 카테고리의 다른 글
  • [spring] Dao와 Service
  • [Spring] 페이징(Pagination)
  • [spring] 회원가입 - 아이디 중복 체크하기
  • [spring] 파라미터 다루기
라텐느
라텐느
이제 막 개발을 시작한 초보가 개인공부를 하는 공간입니다.
  • 라텐느
    괴발개발
    라텐느
    • 개발자 (153)
      • HTML|CSS (14)
      • JAVA (29)
      • JAVACSCRIPT (15)
      • SQL (16)
      • 기타 (5)
      • JSP (2)
      • SPRING (13)
      • SPRING BOOT (6)
      • Git&GitHub (1)
      • 시행착오 (2)
      • 개발일지 (35)
        • GreenMiniProject1 (12)
        • GreenMiniProject2 (9)
        • GreenFinalProject (14)
      • Flutter (5)
      • 자격증 (0)
        • SQLD (1)
      • AWS (2)
      • Linux (1)
      • 자료구조&알고리즘 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    JS
    db
    태그
    input
    티스토리챌린지
    개발자
    SQL
    부트캠프
    JQuery
    링크
    오블완
    일지
    link
    자기계발
    javascript
    java
    CSS
    tag
    AJAX
    HTML
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
라텐느
[spring]회원정보 수정 - 비밀번호 체크하기
상단으로

티스토리툴바