문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
앱 ID : 1003767
안녕하세요 현재 프론트엔드 없이 스프링부트를 이용하여 카카오 로그인 기능 구현을 진행중에 있습니다.
현재 인가코드를 받는거 까진 잘 받아와집니다.
인가코드를 이용하여 AccessToken을 받아 오려고 하니 KOE010 에러가 발생합니다. 현재 Client-Secret은 활성화 한 적이 없어서 이에 관련된 문제는 아닌거로 보입니다.
또한
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
해당 코드를 이용하였기에 Content-Type 또한 제대로 설정한것으로 보여집니다.
어떤점이 문제인지 알 수 있을까요?
안녕하세요.
API요청에 사용된 구현하신 코드 모두 부탁드립니다.
public String requestAccessToken(OAuthLoginParams loginParams) {
String url = authUrl + "/oauth/token";
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> body = loginParams.makeBody();
body.add("grant_type", GRANT_TYPE);
body.add("client-id", clientId);
body.add("redirect_uri", "http://localhost:8080/kakao/callback");
HttpEntity<?> request = new HttpEntity<>(body, httpHeaders);
KakaoTokens response = restTemplate.postForObject(url, request, KakaoTokens.class);
Objects.requireNonNull(response);
return response.getAccessToken();
}
이 중 redirect uri는 AuthorizationCode 받을때와 동일하게 설정 했습니다.
public MultiValueMap<String, String> makeBody() {
MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
body.add("code", authorizationCode);
return body;
}
Postman으로 테스트했을때 AuthorizationCode 가 잘 넘어오는걸 확인했습니다.