회원 탈퇴를 위해 클라이언트에서 접근하는 URI는 {{server}}/accounts/{registration} 이다.
해당 API에 접근할 때 반드시 header에 JWT를 첨부해야하고 해당 JWT를 통해서 {registration}를 확인할 수 있다.
따라서 {registration}에 해당하는 Path Variable을 제거한다.
2. 필수가 아닌 Request Body
회원 탈퇴 로직의 경우 Apple을 제외한 다른 소셜 미디어에서는 code 값을 필요로 하지 않는다.
따라서 @RequestBody LoginCode loginCode에 해당하는 값을 nullable 하게 처리하도록 코드를 수정한다.
🔥 After Modification
OAuthController withdraw 메서드
@DeleteMapping("/accounts")
public ResponseEntity withdraw(@AuthenticationPrincipal LoginUser loginUser,
@Valid @RequestBody(required = false) LoginCode loginCode) {
// find user information and extract registration
String registration = userService.findUserInfo(loginUser.getUser().getId()).getSocialId();
// allocate implemented oauth service
oAuthService = authServiceFactory.get(registration);
// delete user information
oAuthService.deleteUser(loginUser.getUser().getId(), (loginCode != null) ? loginCode.getCode() : null);
return new ResponseEntity<>(new ResponseDto<>(1, "계정 탈퇴 성공", null), OK);
}
@RequestBody의 required 속성을 이용하여 nullable하게 요청을 처리하도록 수정
JWT를 통해 현재 요청을 보낸 회원 정보를 조회하여 registration 추출, PathVariable의 registration 제거
✏️ Description
기존 회원 탈퇴를 위한 Controller의 구성은 다음과 같다.
OAuthController의 withdraw 메서드
해당 controller에서 불필요한 로직을 수정한다.
🛠 Features
1. 불필요한 Path Variable 제거하기
회원 탈퇴를 위해 클라이언트에서 접근하는 URI는
{{server}}/accounts/{registration}
이다. 해당 API에 접근할 때 반드시 header에 JWT를 첨부해야하고 해당 JWT를 통해서{registration}
를 확인할 수 있다. 따라서{registration}
에 해당하는 Path Variable을 제거한다.2. 필수가 아닌 Request Body
회원 탈퇴 로직의 경우 Apple을 제외한 다른 소셜 미디어에서는
code
값을 필요로 하지 않는다. 따라서@RequestBody LoginCode loginCode
에 해당하는 값을 nullable 하게 처리하도록 코드를 수정한다.🔥 After Modification
OAuthController withdraw 메서드
@RequestBody
의required
속성을 이용하여 nullable하게 요청을 처리하도록 수정registration
추출, PathVariable의registration
제거