@@ -95,24 +95,21 @@ public void withdraw(User user, String password) {
9595 User managedUser = userRepository .findById (user .getUserId ())
9696 .orElseThrow (() -> new CustomException (ErrorCode .USER_2622 )); // 존재하지 않는 회원
9797
98- if (managedUser .getStatus () == User . Status . DELETED ) { // 이미 탈퇴 처리된 회원
99- throw new CustomException (ErrorCode .USER_2621 );
98+ if (managedUser .getPassword () == null || managedUser . getPassword (). isBlank ()) {
99+ throw new CustomException (ErrorCode .USER_2612 ); // 비번 없음(소셜) 상태에서 비번 확인 불가
100100 }
101101
102- // 소셜 로그인 유저와 일반 로그인 유저 분기 처리
103- if (managedUser .getLoginType () == User .LoginType .LOCAL ) {
104- // 일반 로그인: 비밀번호 검증 필요
105- if (managedUser .getPassword () == null || managedUser .getPassword ().isBlank ()) {
106- throw new CustomException (ErrorCode .USER_2612 ); // 비밀번호 없음
107- }
108- if (password == null || password .isBlank ()) {
109- throw new CustomException (ErrorCode .USER_2611 ); // 비밀번호 불일치
110- }
111- if (!passwordEncoder .matches (password , managedUser .getPassword ())) {
112- throw new CustomException (ErrorCode .USER_2611 ); // 비밀번호 불일치
113- }
102+ // 비밀번호 검증 로직
103+ if (password == null || password .isBlank ()) {
104+ throw new CustomException (ErrorCode .USER_2611 );
105+ }
106+ if (!passwordEncoder .matches (password , managedUser .getPassword ())) {
107+ throw new CustomException (ErrorCode .USER_2611 );
108+ }
109+
110+ if (managedUser .getStatus () == User .Status .DELETED ) { // 이미 탈퇴 처리된 회원
111+ throw new CustomException (ErrorCode .USER_2621 );
114112 }
115- // 소셜 로그인(GOOGLE, KAKAO): 비밀번호 검증 없이 탈퇴 가능 (JWT 인증으로 본인 확인됨)
116113
117114 managedUser .withdraw ();
118115 // refresh 토큰, 탈퇴한 user관련 메모, 스크랩 DB에서 삭제
0 commit comments