response를 getBody로 다시 요청을 해보면
return "카카오 토큰요청 완료 : 토큰 요청에 대한 응답 :" + response.getBody();

accessToken을 정확하게 볼 수 있다
@Controller
@RequestMapping("/kakao")
public class KakaoController {
@ResponseBody
@GetMapping("/callback")
public String kakaoCallback(String code) { //data를 리턴해주는 컨트롤러 함수
//생략
//Gson, Json Simple, ObjectMapper 라이브러리
ObjectMapper objectMapper = new ObjectMapper();
OAuthToken oauthToken = null;
try {
oauthToken = objectMapper.readValue(response.getBody(), OAuthToken.class);
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println("카카오 엑세스 토큰: " + oauthToken.getAccess_token());
return response.getBody();
}

accessToken이 console에도 잘 찍히는것을 볼 수 있다
이제 이걸 가지고
사용자 정보 요청을 해야한다
원래 나눠서 작성하는것이 좋지만
현재 헷갈리는 상황에서는 한곳에서 보는게 더 이해가 잘 될거같아 아래에 이어서 작성했다
@Controller
@RequestMapping("/kakao")
public class KakaoController {
@ResponseBody
@GetMapping("/callback")
public String kakaoCallback(String code) { //data를 리턴해주는 컨트롤러 함수
//생략
//토큰을 이용해서 사용자 정보 조회
RestTemplate rt2 = new RestTemplate();
//HttpHeader 오브젝트 생성
HttpHeaders headers2 = new HttpHeaders();
headers2.add("Authorization", "Bearer " + oauthToken.getAccess_token());
headers2.add("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
//HttpHeader 와 HttpBody를 하나의 오브젝트에 담기
HttpEntity<MultiValueMap<String, String>> kakaoProfileRequest2 =
new HttpEntity<>(headers2);
//Http요청하기 - Post 방식으로-그리고 response 변수의 응답 받음
ResponseEntity<String> response2 = rt2.exchange(
"https://kapi.kakao.com/v2/user/me",
HttpMethod.POST,
kakaoProfileRequest2,
String.class
);
return response2.getBody();
}
