diff --git a/src/main/java/umc/kkijuk/server/auth/service/AuthService.java b/src/main/java/umc/kkijuk/server/auth/service/AuthService.java index 96724a0..9874cb0 100644 --- a/src/main/java/umc/kkijuk/server/auth/service/AuthService.java +++ b/src/main/java/umc/kkijuk/server/auth/service/AuthService.java @@ -88,6 +88,10 @@ public Map handleKakaoLogin(String code, String redirectUri) { @Transactional public Map handleNaverLogin(String code, String state) { + if( code == null || code.isBlank()){ + throw new IllegalArgumentException("code 값이 누락되었습니다. 사용자가 인증을 거부했을 수 있습니다."); + } + String naverAccessToken = getNaverAccessToken(code, state); Member member = processNaverUser(naverAccessToken); @@ -201,10 +205,20 @@ public NaverUserResponse.NaverUserDetail getNaverUserInfo(String naverAccessToke HttpEntity> request = new HttpEntity<>(headers); try { - ResponseEntity response = - restTemplate.exchange(naverUserInfoUri, HttpMethod.GET, request, NaverUserResponse.class); - log.info("네이버 사용자 정보 응답: {}", response.getBody()); - return response.getBody().getNaverUserDetail(); + ResponseEntity response = restTemplate.exchange(naverUserInfoUri, HttpMethod.GET, request, NaverUserResponse.class); + NaverUserResponse body = response.getBody(); + log.info("네이버 사용자 정보 응답: {}", body); + + if (body == null) { + throw new RuntimeException("네이버 사용자 정보 응답이 null입니다."); + } + if(!"00".equals(body.getResultCode())){ + throw new RuntimeException("네이버 사용자 정보 요청 실패: " + body.getMessage()); + } + if (body.getNaverUserDetail() == null) { + throw new RuntimeException("네이버 사용자 정보가 존재하지 않습니다."); + } + return body.getNaverUserDetail(); } catch (Exception e) { log.error("네이버 사용자 정보 요청 실패: {}", e.getMessage());