카카오 로그인 무한리디렉션

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


앱 id : 149905
카카오브라우저에서 주소를 열어 카카오 로그인시 무한 리디렉션에 빠집니다.
주소 창은 로그인주소.php?code=@@@@로
카카오 로그인 인증 후 반환된 인증 코드입니다. 이 코드를 사용해 카카오 서버에서 토큰을 받아와야 하는데 모바일 환경에서 chrome 브라우저로 로그인시 정상 작동합니다. 오직 카카오톡에서 연 주소에서 로그인하면 무한 리디렉션에 빠집니다. 어떻게 해야 할까요?

PC에서도 동일한 상황으로 보입니다.
개발하신 리다이렉트 URI에서 어떤 상황에 해당 메시지 표시하는지 확인해보시면 좋을 것 같습니다.

참고로 무한 리디렉션은 크롬 기본브라우저에서도 발생합니다. 최초 카카오 로그인으로 연결 시, 위 에러 발생하고
두번째 시도는 무한 리다이렉트 되는 상황으로 개발하신 시스템 문제로 보입니다.

image

해당 메시지는 카카오에서 is_email_verified 가 true가 아닐 경우 발생합니다.
현재 제가 해보기에는 pc에서 모바일주소와 pc주소 모두 정상작동하는데 이것도 문제가 될까요?

해결할려면 어떻게 고쳐야 될까요?

네, 다른 에러 조건도 있을 것으로 보입니다.
모바일에서 재현 한후 크롬 브라우저에서 로그인페이지 진입만해도 무한 리디렉션 됩니다.

로그인 페이지에 리디렉션 로직이 있을 수도 있고 세션 조건에 따라 페이지 리디렉션이 원인일 것으로 추정합니다.


개발하신 코드에 원인이 있으므로

(1) 로그인 페이지에 리디렉션 원인을 찾으셔야하고
(2) 카카오 로그인 시, scope 파라메터를 사용하지 말고 이메일을 필수동의로 설정하셔서 "다시 시도해주세요"상황이 근본적으로 발생하지않도록 조치해주세요.

https://github.com/rawady/KakaoLogin-for-PHP 이 자료를 사용하였습니다. 여기에 돌아와야 될 주소 부분을 rurl로 새로 설정하고 rurl은 $_SESSION[‘rurl’] = isset($_SERVER[‘HTTP_REFERER’]) ? $_SERVER[‘HTTP_REFERER’] : “/index.php”; 이값을 통해 저장합니다. 안의 코드 중 현재 v2로 바뀐 주소는 수정해놓은 상태입니다.

해당자료는 카카오에서 제공하는 가이드가 아닙니다. 디버깅 해드릴 수 없는점 양해 부탁드립니다.

아래 예제로 간단히 테스트 해보시면 좋을 것 같고

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

로그인을 팝업으로 처리하시는데, 페이스북 인앱브라우저나 인스타그램 인앱브라우저는 팝업을 지원하지 않습니다.
운영하시는 서비스 마케팅에도 좋지 않을 것 같은데요.

위 예제와 같이 팝업 없이 리다이렉트 방식으로 구현하시면 좋을 것 같습니다.