사이트 카카오 로그인 에러

사이트 회원가입/로그인 > 카카오 로그인을 이용하고있는데 현시간 확인시 로그인이 되지 않습니다.
로그인 다음 창까지가고 return 액션이 안되는것같은데 카카오 이슈인지 확인 요청드립니다.

2023-06-07 15 33 27

재현되지 않는데요.

사이트 주소 알려주시겠어요?

https://healthyfriends.co.kr
사이트 주소 전달드립니다.

소스 수정 없었는데 오늘 15시 반경부터 되지않는것 같습니다.

image

브라우저상 리다이렉트 URI로딩이 안되어 이전페이지 URL이 표시되지만
카카오 로그인 이후, 운영하시는 사이트에서 응답이 없습니다.

   $CLIENT_ID = '----';
        $REDIRECT_URI = 'https://healthyfriends.co.kr/healthyfriends/kakao_member_check';
        $params = sprintf('?grant_type=authorization_code&client_id=%s&redirect_uri=%s&code=%s', $CLIENT_ID, $REDIRECT_URI, $code);
        $url = 'https://kauth.kakao.com/oauth/token' . $params;
        $s = curl_init();
        curl_setopt($s, CURLOPT_URL, $url); curl_setopt($s, CURLOPT_POST, false);
        curl_setopt($s, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($s);
        curl_close($s);
        $_token = json_decode($result);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://kapi.kakao.com/v2/user/me');
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$_token->access_token));
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $json = curl_exec($ch);
        curl_close($ch);

위 부분에서 응답이 되지않습니다.

클라이언트 아이디는 임의의 값으로 대체하였습니다.

추가 확인 결과 전달드립니다.
토큰까지는 성공하였고 회원정보 불러오는 부분에서 진행되지않음을 확인하였습니다.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ‘https://kapi.kakao.com/v2/user/me’);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$_token->access_token));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$json = curl_exec($ch);
curl_close($ch);

로그를보니 성공한 이력도 많이 있고
저도 재현테스트 해보니 성공과 타임아웃이 혼재하는것을 볼때

방화벽에서 카카오 측 IP접근 제어하시나요?
아래 공지 확인해보시겠어요?

[공지] API플랫폼 서버 IP 변경 / [Notice] Changes the API platform server IP

가비아퍼스트몰에 해당 아이피 관련 체크해보겠습니다.

오늘부터 되지않았는데 해당 IP가 오늘 제거되었을까요?

아닙니다. 이미 1개월 되었습니다.

재현테스트 시, 타임아웃 빈도가 높은 편이고
다른 사이트에서 제보가 없고, 재현이 안되는 것을 볼때

운영하시는 시스템 방화벽 문제로 추정되긴합니다.
저희도 좀더 모니터링 해보겠습니다. 호스팅사에 먼저 확인 부탁드려요.

네 해당 아이피 방화벽 허용 요청하였습니다.

방화벽 요청사항 피드백 왔습니다.

안녕하세요 가비아 퍼스트몰입니다.

문의해주신 부분 IN/OUT port 443 전부 오픈되어있어 방화벽 제한되어 있지 않습니다.

별도 수정한 이력은 없는 점 참고해주시기 바랍니다.

감사합니다.

위와같은 정보라 해당 이슈는 다른것같습니다.

타임아웃은 전형적인 방화벽/프록시서버 문제 증상이며
타임아웃 발생하는 시점에 카카오측 까지 호출이 도달하지 않아 로그가 없으므로 카카오에서는 내용을 확인할 수 없습니다.

(1) 타임 아웃발생한 시점에 TCP덤프 제공해주시면 어떤상황인지 추가로 확인해보겠습니다.

(2) 서버에서 telnet과 curl로 kapi 211.249.200.134, 203.133.166.33 호출 테스트 부탁드립니다.

12:34:50 카카오 로그인 회원가입자가 있는거봐선 해당 시간 이후로부터 되지 않은것같습니다.

TCP덤프 및 호출 테스트는 가비아 측에 문의하였으며 확인 후 피드백 드리도록 하겠습니다.

모니터링 중 이상한점을 발견했습니다.

타임아웃증상이 아니라 리다이렉트 URI에서 액세스 토큰 발급 후, 정확히 2분뒤에 /v2/user/me 호출되는 증상이 확인됩니다.
반복적으로 재현도됩니다.

image

(1) 인가요청

Jun 7, 2023 @ 18:18:26.880	/oauth/authorize	302

(2) 리다이렉트 URI에서 토큰 발급

Jun 7, 2023 @ 18:18:26.977	/oauth/token	200

응답 Jun 7, 2023 @ 18:18:27.964

1초만에 응답하였습니다.

(3) 사용자정보조회 API :

Jun 7, 2023 @ 18:20:27.139	/v2/user/me	200

응답 Jun 7, 2023 @ 18:20:27.474

0.3초만에 응답하였습니다.

가비아측 확인과 더불어 액세스 토큰 발급과 사용자 정보조회 사이 로직이 있는지도 확인 부탁드려요.

네 모니터링 감사합니다.

토큰 발급 후 바로 회원정보 조회 로직이며 사이에 로직은 없습니다.

가비아측에서 피드백 오면 다시 확인해보도록 하겠습니다.

  • 사이트 내에서 /v2/user/me 호출시에만 느리게 피드백이 올라오는것같습니다. 2분 이후 데이터 불러오는점 확인

controller 내 curl 방식으로 REST-API 호출시에만 이슈가 발생하는 점 확인하였습니다.

해당 부분 가비아에서 피드백 올때까지 아래 로그인 방식으로 치환하였습니다.
javascript에서 호출시에는 문제없음을 확인하였습니다.
Kakao.Auth.login({
success: function(authObj) {
Kakao.API.request({
url: ‘/v2/user/me’,
success: function(res) {

해당 부분 방화벽 문제인지 확인하여 수정 예정입니다.

1개의 좋아요

안녕하세요
저희 사이트도 동일한 증상이 금일 발생하여 추가정보 드립니다

원글 작성자분과 동일하게 PHP 기반 사이트이며, php curl()을 이용하여 kakao API를 호출중입니다

  1. 액세스 토큰 요청(/oauth/token) API는 정상적으로 동작합니다
  2. 발급받은 액세스 토큰을 이용하여 가입(/v1/user/signup), 유저정보(/v2/user/me) 호출시에 서버에 지정된 타임아웃 시간인 5분이 될때동안 응답이 오지않습니다
  3. 특이한 점은 서버의 커맨드라인 상에서 curl로 호출시에는 정상적으로 응답이 온다는겁니다…
    Ex) curl https://kapi.kakao.com/v2/user/me -H ‘Authorization: Bearer xxxxxxx’

카카오측 API 서버에 변경사항이 있는지 궁금하며,
저희측 환경 첨부합니다.

  • 서버 : AWS EC2
  • OS : Ubuntu 22.04 LTS
  • PHP : 7.1.33-52
  • curl : 7.81.0
  • php7.1-curl : 7.1.33-52

aws라면 방화벽 설정 확인 부탁드려요.

[공지] API플랫폼 서버 IP 변경 / [Notice] Changes the API platform server IP

참고로 위에 다른분 문의는 방화벽 문제 보다는 프록시 설정 또는 특정 기능 타임아웃 문제로 추정됩니다. 2분딜레이 후. 호출되고 0.3초만에 즉시 응답.

@jhjsongoku88

controller라 하심은 특정 프레임웍을 사용하시는 걸까요?

외부 변수 최소화를 위해
아래 php예제 참고하셔서 프레임웍 없이 호출테스트 부탁드립니다.

[rest api 예제] php - 카카오 로그인, 카카오 친구목록 조회 및 카카오톡 메시지

조금전 이슈 해결하여 공유드립니다

/user/me, /user/signup 두 API는 GET으로 호출하도록 변경된듯합니다
저희 사이트는 모든 카카오 API를 POST로 호출하고있던걸 확인하였고, GET으로 변경한 이후 정상적으로 응답을 받을수 있었습니다
curl_setopt($s, CURLOPT_POST, true); => curl_setopt($s, CURLOPT_POST, false);