카카오 Rest API의 사용자 정보 요청 시 401 에러


private static final String KAKAO_INFO_URI = "https://kapi.kakao.com/v2/user/me";

public ResponseEntity<Map> getKakaoMemberProfile(String accessToken) throws Exception {
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();

    headers.add("Authorization", "Bearer " + StringUtil.URLEncode(accessToken));
    headers.add("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE + ";charset=UTF-8");

    log.info("====profile headers====");
    log.info(headers.toString());
    log.info("====profile headers====");

    URI uri = URI.create(KAKAO_INFO_URI);
    RequestEntity<String> rq = new RequestEntity<>(headers, HttpMethod.POST, uri);
    ResponseEntity<Map> re = restTemplate.exchange(rq, Map.class);

    return re;
}

위와 같이 Access Token을 파라미터로 받아서 RestTemplate를 이용하여 Rest API를 호출하고 있습니다. Access Token 발급받을 때도 위와 같이 RestTemplate를 이용하여 잘 됐었는데 사용자 정보 요청 API는 위와 같이 호출하니깐 401 에러가 떨어지면서 동작하지 않고 있습니다.

log로 header를 찍어봐도 Bearer [AccessToken] 이 잘 들어가있는 것을 확인하였는데 어디가 문제가 되고 있는지 혹시 조언을 얻을 수 있을까요?

(내 애플리케이션 > 설정 > 사용자 관리에서 로그인 동의항목 > 개인정보 보호항목에 profile, account_email, gender, birthday를 추가해둔 상태입니다.)

2개의 좋아요

자문자답입니다. 설정 > 고급에서 허용 서버 IP 주소에 저는 로컬에서 개발 테스트 진행 중이라 127.0.0.1을 넣어뒀는데 빼니깐 잘 되네요-_- 허용 서버 IP 주소를 쓰려면 127.0.0.1이 아니라, 현재 로컬 PC의 공인 IP 주소를 넣는게 맞겠군요…

3개의 좋아요

정말 감사합니다. 덕분에 해결했습니다. 따흨 ㅠㅠㅠㅠㅠㅠ