Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발하는 감자

[카카오 로그인 API] 401 Unauthorized: [no body] 에러 본문

프로젝트/Tripture

[카카오 로그인 API] 401 Unauthorized: [no body] 에러

gam_ja 2024. 7. 15. 19:56

카카오 로그인 구현 도중, 액세스 토큰까지 발급이 다 완료된 상태인데 토큰을 통해 사용자 정보 조회하는 과정에서 401 에러가 계속해서 발생했다.

 

검색해 보면 해당 에러는 거의 api 호출 시 정보를 제대로 전송하지 않아 발생되는 에러였는데, 계속 확인해 봐도 

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.setBearerAuth(accessToken);

 

헤더에 정보를 제대로 잘 전달하고 있었다.

 

- 카카오 로그인 API 토큰을 이용한 사용자 정보 조회 시 헤더에 담아 넘겨야 할 값 

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

✅ 해결 과정 

정보는 제대로 잘 전달되고 있으니, 토큰에서 문제가 있는 건가 싶어 카카오 로그인 API 문서에서

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#get-token-info

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

해당 문서를 통해 토큰 정보를 확인하는 코드를 작성했다.

 

- 토큰 정보 확인 

String tokenReqUrl = "https://kapi.kakao.com/v1/user/access_token_info";
RestTemplate rtToken = new RestTemplate();

HttpHeaders headersToken = new HttpHeaders();
headersToken.setBearerAuth(accessToken);
HttpEntity<MultiValueMap<String, String>> kakaoProfileRequestToken =
        new HttpEntity<>(headersToken);

ResponseEntity<String> responseToken =
rtToken.exchange(tokenReqUrl, HttpMethod.GET, kakaoProfileRequestToken, String.class);

System.out.println("responseToken = " + responseToken);

 

해당 코드를 작성해 유저 정보를 조회하는 코드 앞에 넣어 실행했다.

실행 결과 토큰의 문제는 아니었지만, 에러 문구를 더욱 상세하게 확인할 수 있었다.

401 Unauthorized: "{"msg":"ip mismatched! callerIp={ip 주소}. check out registered ips.","code":-401}"

 

kakao developers 에서 내 애플리케이션 > 고급 설정 > 허용 IP 주소 섹션에서 허용 서버 IP 주소에서 내 IP 주소를 설정하지 않아 생긴 문제 같았다.

해당 섹션에 에러에서 나온 callerIp 주소를 추가해 준 후, 다시 실행해 보니 사용자 정보를 잘 불러오는 것을 볼 수 있었다.

 

허용 IP 주소를 설정하지 않았을 때 나타나는 오류는 해당 공식 문서에도 잘 정리되어 있다.

https://developers.kakao.com/docs/latest/ko/rest-api/getting-started#before-you-begin-allowed-ip-registration

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

'프로젝트 > Tripture' 카테고리의 다른 글

[AWS EC2] 테스트 서버 에러 기록  (1) 2024.07.28