카카오 로그인 오류

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


앱 아이디 : 886532
개발환경 : Expo (React Native)

안녕하세요. REST API를 통해 제공하던 카카오 로그인 기능이 10월 8일 이후부터 로그인 오류가 발생해 문의드립니다!

로그인 오류가 발생하는 부분은 유저의 카카오계정 로그인 완료 ~ redirect uri를 통해 인가 코드를 받는 과정에 발생합니다.
로그인은 성공적으로 진행되나, 설정한 redirect uri로 인가 코드가 전달되지 않습니다.

비즈앱 설정이나 ‘사용자 동의’ 부분에서 문제가 발생하나 의심하여 앱 설정의 비즈니스 정보를 최신으로 변경하고(사업자등록증 이미지 및 통신판매업 코드 등록)
카카오 로그인의 동의항목들을 점검하였으나, 별다른 문제를 발견하지 못했습니다.

도큐먼트에 적힌 https://kauth.kakao.com/oauth/authorize 엔드포인트로 올바르게 요청했으며, 문제 해결 | Kakao Developers 문제 해결 의 KOE에러코드와 매핑되는
어떤 에러코드도 수신되지 않습니다…

요청 방식은 expo SDK 에서 제공하는 프록시 서버(=redirect uri)를 경유해 요청을 하고 있고, 프록시 서버가 엔드포인트로부터 전달받은 인가 코드를 곧바로 앱의 딥링크(returnUrl)로 리턴하여 처리하는 방식입니다.

(정확히는 특정할 수 없지만, 대략) 10월 8일 이전에는 이러한 방식으로 로그인이 잘 작동하고 있었고 유사한 형식으로 다른 플랫폼 로그인은 계속 작동하고 있습니다. 따라서 프록시 → 딥링크에 문제가 있는 것 같지는 않습니다. 카카오 로그인에만 문제가 발생하고 KOE에러코드도 전달하지 않아 어떤 원인인지 파악하기가 난망한 상태입니다 …ㅠㅠ

에러가 발생하는 원인이 redirect uri로의 인가코드 전달의 문제인지, 혹시 그 이전에 제 비즈앱이나 동의권한 등 설정 오류의 문제인지 확인이 필요합니다. 도움 부탁드립니다. 감사합니다.

안녕하세요.

redirect uri 로 사용된 아래 경로가 유효한지 확인 부탁드립니다.

https://auth.expo.io/@disagreedd/fair-division-of-housework

1개의 좋아요

네 유효한 경로입니다.
카카오 로그인 도입 초기부터 계속 사용되었고 변동되지 않았습니다. 해당 uri로 현재도 인가코드를 받아오고 있습니다(유사한 REST API를 사용하는 다른 플랫폼 로그인의 경우).

회원님 서비스 앱을 설치하여 로그인 시도하였을 때
카카오가 아닌 auth.expo.io 에서 오류가 발생하는 것을 확인하였습니다.
해당 페이지로 인가코드와 앞서 전달받은 state 모두 전달되었지만, “Something went wrong trying to finish signing in. Please close this screen to go back to the app.” 메시지가 표시되고 있는데요 useProxy와 같은 관련 설정을 확인해 보셔야 할것 같습니다.

감사합니다! 사용자의 로그인 및 ‘사용자 동의’ 체크가 카카오 인가코드 발급처에 정상적으로 접수되고, 결과값인 인가코드 역시 redirect uri로
${REDIRECT_URI}?code=${AUTHORIZE_CODE} 형태로 잘 전달되어진다는 말씀이시죠? 흠… ㅠㅠ
naver 또한 같은 리다이랙트 주소로 동일한 형태로 작동하고 있는데, 카카오가 잘 되다 안 되니 당황스럽네요 ㅠㅠ

웹뷰 디버깅 가능하시다면, https://auth.expo.io/%40disagreedd/fair-division-of-housework 으로 리디렉션 되어 오류 발생하였을 때, %40을 @ 으로 수정하여 시도해 보시겠어요?

혹시 이것이 원인인가 하여 확인차 부탁드립니다.

1개의 좋아요

엔드포인트에 파라미터로 전달하는 인코딩된 리다이랙트 uri에서 인코딩된 @를 @으로 변경도 해봤는데 소용이 없습니다ㅠㅠ
죄송하지만 웹뷰 디버깅을 통해 해당 주소를 @로 변경하는 것은 어떻게 하는지 모르겠습니다… 카카오 인가서버에서 인가코드와 state를 넣어 uri로 리다이렉트를 할 때, 파라미터로 전달받은 uri를 그대로 사용하는 거 아닌가요?

  1. 휴대폰과 PC 연결된 상태에서 앱을 웹뷰 디버깅 가능하도록 실행 시키신 뒤
    MainActivity → WebView.setWebContentsDebuggingEnabled(true)
  2. 카카오 로그인 기능 사용하시고, 오류 화면에서
  3. PC 크롬의 chrome://inspect 에서 웹뷰를 디버깅 하여
  4. @ 문자로 변경하여 다시 접근 할 수 있습니다.

동일한 오류 발생시 url path가 원인이 아니기에 다른 원인이 있지 않은지 확인이 필요 합니다.

1개의 좋아요

감사합니다. @ 문자로 변경해도 동일하게 인가코드 및 state 파라미터를 가지고 앱의 딥링크(returnUrl)로 넘어가지지 않는 걸 보면 url의 문제는 아닌 것으로 보여요. 일단 인가코드 및 state는 파라미터로 전달된다고 하셨으니 카카오 자체 서비스의 문제는 아닌 것으로 생각되네요. 방법을 찾아봐야겠습니다.ㅠㅠ 도움 감사드립니다.