Skip to content

Commit 89032ce

Browse files
committed
Harden social account deletion responses
1 parent 55a6098 commit 89032ce

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

ontime-back/src/main/java/devkor/ontime_back/controller/SocialAuthController.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import devkor.ontime_back.dto.OAuthKakaoUserDto;
77
import devkor.ontime_back.global.oauth.apple.AppleLoginService;
88
import devkor.ontime_back.global.oauth.google.GoogleLoginService;
9+
import devkor.ontime_back.response.ApiResponseForm;
910
import devkor.ontime_back.service.UserAuthService;
1011
import io.swagger.v3.oas.annotations.Operation;
1112
import io.swagger.v3.oas.annotations.media.Content;
@@ -16,6 +17,7 @@
1617
import jakarta.servlet.http.HttpServletResponse;
1718
import lombok.RequiredArgsConstructor;
1819
import lombok.extern.slf4j.Slf4j;
20+
import org.springframework.http.ResponseEntity;
1921
import org.springframework.web.bind.annotation.*;
2022

2123
@Slf4j
@@ -113,24 +115,32 @@ public String appleRegisterOrLogin(@RequestBody OAuthAppleRequestDto appleLoginR
113115
summary = "애플 소셜 로그인 회원탈퇴"
114116
)
115117
@DeleteMapping("/apple/me")
116-
public String appleDeleteUser(HttpServletRequest request, HttpServletResponse response, @RequestBody(required = false) FeedbackAddDto feedbackAddDto) throws Exception {
118+
public ResponseEntity<ApiResponseForm<?>> appleDeleteUser(HttpServletRequest request, HttpServletResponse response, @RequestBody(required = false) FeedbackAddDto feedbackAddDto) {
117119
Long userId = userAuthService.getUserIdFromToken(request);
118120
log.info("userId: {}", userId);
119-
appleLoginService.revokeToken(userId);
121+
try {
122+
appleLoginService.revokeToken(userId);
123+
} catch (Exception e) {
124+
log.warn("Apple 토큰 철회에 실패했지만 계정 삭제를 계속 진행합니다. userId={}, reason={}", userId, e.getMessage());
125+
}
120126
userAuthService.deleteUser(userId, feedbackAddDto);
121-
return "애플 로그인 회원탈퇴 성공";
127+
return ResponseEntity.ok(ApiResponseForm.success(null, "애플 로그인 회원탈퇴 성공"));
122128
}
123129

124130
@Operation(
125131
summary = "구글 소셜 로그인 회원탈퇴"
126132
)
127133
@DeleteMapping("/google/me")
128-
public String googleDeleteUser(HttpServletRequest request, HttpServletResponse response, @RequestBody(required = false) FeedbackAddDto feedbackAddDto) throws Exception {
134+
public ResponseEntity<ApiResponseForm<?>> googleDeleteUser(HttpServletRequest request, HttpServletResponse response, @RequestBody(required = false) FeedbackAddDto feedbackAddDto) {
129135
Long userId = userAuthService.getUserIdFromToken(request);
130136
log.info("userId: {}", userId);
131-
googleLoginService.revokeToken(userId);
137+
try {
138+
googleLoginService.revokeToken(userId);
139+
} catch (Exception e) {
140+
log.warn("Google 토큰 철회에 실패했지만 계정 삭제를 계속 진행합니다. userId={}, reason={}", userId, e.getMessage());
141+
}
132142
userAuthService.deleteUser(userId, feedbackAddDto);
133-
return "구글 로그인 회원탈퇴 성공";
143+
return ResponseEntity.ok(ApiResponseForm.success(null, "구글 로그인 회원탈퇴 성공"));
134144
}
135145

136146

ontime-back/src/main/java/devkor/ontime_back/global/oauth/google/GoogleLoginService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.http.HttpHeaders;
2323
import org.springframework.http.HttpMethod;
2424
import org.springframework.http.ResponseEntity;
25+
import org.springframework.http.client.SimpleClientHttpRequestFactory;
2526
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
2627
import org.springframework.security.core.Authentication;
2728
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -175,7 +176,10 @@ public boolean revokeToken(Long userId) {
175176

176177
String googleRefreshToken = user.getSocialLoginToken();
177178

178-
RestTemplate restTemplate = new RestTemplate();
179+
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
180+
requestFactory.setConnectTimeout(3000);
181+
requestFactory.setReadTimeout(3000);
182+
RestTemplate restTemplate = new RestTemplate(requestFactory);
179183
String revokeUrl = GOOGLE_REVOKE_URL + googleRefreshToken;
180184

181185
HttpHeaders headers = new HttpHeaders();

0 commit comments

Comments
 (0)