[홈페이지 제작] 게시판 만들기 10 - 비밀번호 변경

Feb 08, 2024
[홈페이지 제작] 게시판 만들기 10 - 비밀번호 변경
 
지난 블로그에서 회원 수정 페이지를 만들었다. 이번 블로그에서는 비밀번호를 수정해보자.

1 . View 확인

 
notion image
 
회원을 통해 새로운 비밀번호를 입력받는다. 비밀번호는 DTO 를 만들어서 받기로 한다.
 
user/UserRequest
@Data public static class passwordUpdateDTO{ private String password ; }
 
 

2. Controller

 
@PostMapping("/user/update") public String update(UserRequest.passwordUpdateDTO requestDTO){ //1. 인증체크 로그인여부 User sessionUser = (User) session.getAttribute("sessionUser"); if(sessionUser==null){ return "redirect:/loginForm"; } // 2. 동일한 비밀번호를 입력했을 때 오류 페이지 if(sessionUser.getPassword().equals(requestDTO.getPassword())){ return "error/400"; } //3. 핵심로직. 비밀번호를 받아서 update 한다. userRepository.passwordUpdate(requestDTO,sessionUser.getId()); // 변경된 데이터를 세션에 덮어씌운다. session.setAttribute("sessionUser",sessionUser); return "redirect:/"; }
 
requestDTO 를 통해 회원이 입력한 데이터를 입력받는다.
 

3. Repository

@Transactional public void passwordUpdate(UserRequest.passwordUpdateDTO requstDTO, int id) { Query query = em.createNativeQuery("update user_tb set password = ? where id = ?"); query.setParameter(1,requstDTO.getPassword()); query.setParameter(2,id); query.executeUpdate(); }
 
세션의 id 값으로 데이터를 조회해 회원이 입력한 비밀번호를 업데이트한다.
 
notion image
 
유저 정보
 
notion image
 
현재 ssar 로 로그인이 되어있다. 비밀번호는 passwordchange 로 변경했다.
 
notion image
 
DB 에도 비밀번호가 정상적으로 변경되었다.
 
notion image
 
만약 현재와 동일한 비밀번호를 입력하면 에러 페이지가 실행된다.
Share article

{CODE-RYU};