마이페이지 회원 정보 페이지에서 탈퇴하기 버튼을 클릭하면 탈퇴 페이지로 이동한다.
이메일을 입력하고 가입된 정보와 같은지 확인 후 세션이 만료 되며 모든 회원 정보는 삭제되고 탈퇴에 성공한다.
✂️탈퇴전 db 존재
✂️탈퇴 후 db에서도 삭제
<form id="withdrawalForm" action="${contextPath }/member/deleteMemberCheck" method="post">
<div class="form-group">
<input type="text" value="${successLoginUser}" name="id" />
<input type="text" name="email" id="pwd" placeholder="이메일">
</div>
<button type="submit" id="withdrawal-btn">탈퇴하기</button>
</form>
세션이 있는 아이디가 탈퇴 페이지로 넘어가고 이메일을 입력하고 탈퇴하기 버튼을 클릭하면 해당 폼은 입력한 컨트롤러로 연결된다.
✔️세션 만료시키기
@PostMapping("deleteMemberCheck")
public String deleteMemberCheck(String email, HttpSession session, memberDTO dto){
if(email.equals(dto.getEmail())) {
ms.deleteMemberCheck(dto);
session.invalidate();
return "redirect:/index";
} else {
return "redirect:deleteMember";
}
}
세션과 이메일을 가져오고 입력한 이메일과 비교할 dto를 가져온다.
사용자가 입력한 이메일이 dto의 이메일과 같으면 값을 service로 보내고 세션을 만료시킨후 메인페이지로 이동한다.
값이 같지 않다면 탈퇴 페이지를 보여준다.
public void deleteMemberCheck(memberDTO dto);
public void detailInfoDel(String id) {
memberMapper.detailInfoDel(id);
}
public void deleteMemberCheck(memberDTO dto);
<delete id="deleteMemberCheck" >
delete from box_member where buser_id=#{id}
and
buser_email = #{email}
</delete>
delete
로 회원 아이디와 아이디 값을 가진 회원을 삭제하는 쿼리문을 작성한다.