카카오 로그인 안됨 401 error

REST API 를 사용하여 카카오 로그인을 구현하였습니다.

오류 상황을 설명드리자면,
상용서버
상용서버는 public IP 가 없는 private IP 만 할당됨
사용자가 상용서버에 접속할 때는 상용서버 앞단에 있는 게이트웨이 IP를 통해서 접속하고 게이트웨이에서 도메인 이름에 맞는 backend pool 을 연결해줍니다.

개발서버
개발서버는 public IP 가 할당됨
사용자가 개발서버에 접속할 때는 개발서버 앞단에 있는 게이트웨이 IP를 통해서 접속하고 게이트웨이에서 도메인 이름에 맞는 backend pool 을 연결해줍니다.

위와 같이 서버를 나누어서 개발을 진행하고 있습니다.
내 어플리케이션 > 고급 설정 > 허용 서버 IP 주소
이동하여 개발서버로 카카오 로그인을 할 때는 public IP를 입력할 수 있지만
상용서버로 카카오 로그인을 할 때는 게이트웨이 IP만 입력해서 사용중입니다.

상용서버에서는 카카오 로그인을 할 때 401 error 가 발생합니다.
여러가지 테스트를 해보았지만 상용서버와 개발서버에 차이점이 public IP가 있고 없고 차이가 전부입니다.

그렇다면, public IP 설정이 되어야 해결이 되는 문제일까요?
아니면 다른 해결방법이 존재할까요?

앱 ID: 722268

확인 부탁드립니다 :slight_smile:

안녕하세요. 응답받은 에러 Body 기재해주셔야 정확한 안내가 가능한데요.

로그상 보이는 오류들중 아래 내용으로 안내드려보면.

인가요청 시, 설정한 Redirect URI 파라메터 값과 토큰요청 시, 설정한 Redirect URI 파라메터가 달라서 발생한 에러입니다.

{"error":"invalid_grant","error_description":"Redirect URI mismatch.","error_code":"KOE303"}

인가요청 Redirect URI http://patron.digital/
토큰요청 Redirect URI https://patron.digital/

더 자세한 안내 원하시면, 응답받은 에러 Body 기재 부탁드려요.

에러코드는 다음과 같이 나왔습니다.

java.io.IOException: Server returned HTTP response code: 401 for URL: https://kapi.kakao.com/v2/user/me
java.io.IOException: Server returned HTTP response code: 401 for URL: https://kapi.kakao.com/v1/user/unlink

Redirect url은 https://patron.digital/로 정확히 입력이 되어 있었습니다.

Redirect url은 https://patron.digital/로 정확히 입력이 되어 있었습니다.

에러로그상 발생한 에러를 설명드린 것이니 잘못호출되는 부분이 있는지 살펴보시면 될 것 같습니다.


기재해주신내용의 카카오 로그인의 에러 Body 가 아니라 로그인 이후
사용자 정보조회 API와 연결끊기 API 호출 시 응답받은 401에러로 보입니다.

ip mismatched! callerIp=20.249.8.88. check out registered ips.

허용 IP에 서버 IP를 등록하셔서 사용해주시면 될 것 같습니다.

API호출 시, 아래와 같이 응답 전달되니 에러 Body 확인하시면 조치가능합니다.
참고 부탁드려요.

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

callerIp 허용 IP에 추가하니 카카오 로그인 정상 작동이 확인되었습니다.

callerIp 가 어디서 조회되는 IP 인지 알 수 있을까요?

카카오 API를 호출한 IP로

백엔드에서 호출하신다면 서버 주소이고
프론트에서 호출하신다면 클라이언트 주소입니다.