File tree Expand file tree Collapse file tree 4 files changed +27
-6
lines changed
src/main/java/com/cmc/mercury Expand file tree Collapse file tree 4 files changed +27
-6
lines changed Original file line number Diff line number Diff line change @@ -82,5 +82,7 @@ public void updateNickname(String nickname) {
8282 this .nickname = nickname ;
8383 }
8484
85- public void deleteUser () { this .userStatus = UserStatus .INACTIVE ; }
85+ public void updateUserStatus (UserStatus userStatus ) {
86+ this .userStatus = userStatus ;
87+ }
8688}
Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ public User withdraw(User user) {
3030 throw new CustomException (ErrorCode .ALREADY_WITHDRAWN );
3131 }
3232
33- user .deleteUser ( );
33+ user .updateUserStatus ( UserStatus . INACTIVE );
3434 user .updateRefreshToken (null ); // Refresh Token 삭제
3535
3636 return user ;
Original file line number Diff line number Diff line change 22
33import com .cmc .mercury .domain .user .entity .OAuthType ;
44import com .cmc .mercury .domain .user .entity .User ;
5+ import com .cmc .mercury .domain .user .entity .UserStatus ;
56import com .cmc .mercury .domain .user .repository .UserRepository ;
67import com .cmc .mercury .domain .user .response .UserTestRequest ;
78import com .cmc .mercury .global .exception .CustomException ;
@@ -46,6 +47,11 @@ public User createTestUser(UserTestRequest request) {
4647
4748
4849 if (existingUser != null ) {
50+ if (existingUser .getUserStatus () == UserStatus .INACTIVE ) {
51+ // 회원탈퇴한 유저 재가입
52+ existingUser .updateUserStatus (UserStatus .ACTIVE );
53+ userRepository .save (existingUser );
54+ }
4955 // 기존 유저가 있으면 로그인 처리 (토큰 갱신)
5056 setTestUserTokens (existingUser , request .isShortLivedAccessToken ());
5157 return existingUser ;
Original file line number Diff line number Diff line change 3333public class CustomOAuth2UserService extends DefaultOAuth2UserService {
3434
3535 private final UserRepository userRepository ;
36- private final AppleIdTokenVerifier appleIdTokenVerifier ;
36+ private final AppleIdTokenVerifier appleIdTokenVerifier ;
3737
3838 @ Override
3939 public OAuth2User loadUser (OAuth2UserRequest userRequest ) throws OAuth2AuthenticationException {
@@ -98,10 +98,23 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2Authentic
9898 Optional <User > existingUser = userRepository .findByOauthTypeAndOauthId (oAuthType , oauthId );
9999 boolean isNewUser = existingUser .isEmpty (); // 존재하지 않으면 회원가입
100100
101- User user = existingUser .orElseGet (() -> {
101+ // 기존 유저 혹은 탈퇴한 사용자인지 확인
102+ User user ;
103+ if (!isNewUser ) {
104+ User existing = existingUser .get ();
105+ if (existing .getUserStatus () == UserStatus .INACTIVE ) {
106+ log .info ("탈퇴한 회원 재가입 - 상태를 ACTIVE로 변경" );
107+ existing .updateUserStatus (UserStatus .ACTIVE );
108+ isNewUser = true ;
109+ user = userRepository .save (existing );
110+ } else {
111+ user = existing ;
112+ }
113+ } else {
102114 log .info ("새로운 사용자 생성 시도" );
103- return createUser (oAuth2UserInfo );
104- });
115+ user = createUser (oAuth2UserInfo );
116+ }
117+
105118 log .info ("사용자 조회/생성 완료: userId={}" , user .getId ());
106119
107120 // 회원가입 여부를 Security Context에 저장 (OAuth2User에 포함)
You can’t perform that action at this time.
0 commit comments