카카오 로그인 시 아래와 같은 에러를 뱉는 경우가 꽤 있어서 문의드립니다

KakaoSDKCommon (= 2.11.1)

The operation couldn’t be completed. (KakaoSDKCommon.SdkError error 2.)

문서를 읽어봐도 저 error 2의 정체를 알 수 없어서 문의를 남깁니다…!
혹시 어떤 경우에 발생하는 에러인지 알 수 있을까요?

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456

넵! 635591 입니다!!

에러 로그 첨부 가능하실까요?

서버 로그상 만료된 리프레시 토큰으로 토큰 재발급 받다 에러발생한 경우가 다수 확인됩니다.

그리고 내부 보안 검증을 위해사용하는 PKCE에러가 있는 것을볼때 뭔가 SDK를 잘못사용하고 계신 부분이 있을 것같아요.

로그인 관련 코드 블럭도 제공해주시겠어요?

저희 앱은 react-native로 만든 앱이고, 로그인 관련 로직은
https://github.com/crossplatformkorea/react-native-kakao-login v5.2.4
이 sdk의 login 메서드를 이용해 받아오는 token을 활용해서 로그인 하는 방식을 취하고 있습니다.

그런데 token을 받아올 때 에러를 뱉고 있어서, 확인을 해보니 제가 제일 상단에 올린 The operation couldn’t be completed. (KakaoSDKCommon.SdkError error 2.)를 뱉고 있던 상태였습니다.

const signInWithKakao = async (): Promise<void> => {
    setIsKakao(true);
    try {
      const token = (await login()) as KakaoOAuthToken;
      ...
    } catch (error) {
      ... // 여기서 에러 확인됨
      Sentry.captureMessage("KAKAO 로그인 도중 에러");
      Sentry.captureException(error);
    }
  };

해당 라이브러리는 카카오에서 제공하는 라이브러리가 아니라 기재하신 코드로는 어떤 상황인지 정확히 판단하기 어려운데요.


로그상 토큰발급 시, 리프레시 토큰을 파라메터로 전달하였고
리프레시 토큰을 전달하면 액세스토큰 발급이 아니라 액세스 토큰 재발급으로 동작하게됩니다.

하지만, 리프레시 토큰이 만료된 토큰이어서 에러 발생하는 것으로

5월6일 발급받은 액세스토큰과 리프레시 토큰 을
5월9일 리프레시 토큰이용 액세스 토큰 갱신시도 하였으나
그사이 카카오 계정관리 페이지 연결된 서비스관리에서 연결끊기 하여 토큰이 만료된 상황입니다.


로그인처리와 액세스토큰 재발급이 해당 라이브러리 내부에 있어 변경하지 못하신다면
에러 발생 시, 다시 로그인 리프레시 토큰 초기화 하고 다시 로그인 시도하시면 좋을 것같습니다.

넵 감사합니다! 말씀해주신대로 한번 처리해보고 추이 살펴보도록 하겠습니다!