카카오 로그인 에러 응답

SDK 2.5.1 버전을 사용하고 있습니다.

카카오톡이 설치되어 있지만 로그인하지 않은 단말에서 로그인 시도를 하는 상황입니다.

위와 같은 상황일 경우 최초 로그인 할때에는 계정을 입력하게 화면이 노출되지만

해당 화면에서 계정 입력없이 취소한 다음 다시 카카오톡으로 로그인 요청을 하면

계정 입력하는 화면이 아닌 로그인 실패 에러를 반환하고 있습니다.

해당 에러코드는 아래와 같으며
AuthError(statusCode=302, reason=Unknown, response=AuthErrorResponse(error=NotSupportError, errorDescription=KakaoTalk is installed but not connected to Kakao account.))

로그아웃 및 연결 끊기 이후에 로그인을 시도하여도 동일한 현상입니다.

위와 같은 상황일 경우 다시 계정을 입력받는 화면으로 호출할 수 있는 방안이 없을까요?

1개의 좋아요

안녕하세요~

https://developers.kakao.com/docs/latest/ko/kakaologin/android#login-through-kakaotalk

isKakaoTalkLoginAvailable() 로 체크 하시고
loginWithKakaoTalk()로 로그인할지
loginWithKakaoAccount() 로 로그인할지 분기 해보시겠어요?

isKakaoTalkLoginAvailable 을 통해 가능한 경우에 카카오톡 로그인을 시도하고 있습니다.

Single.just(UserApiClient.instance.isKakaoTalkLoginAvailable(ctx))
            .flatMap { available ->
                if (available) UserApiClient.rx.loginWithKakaoTalk(ctx)
                else UserApiClient.rx.loginWithKakaoAccount(ctx)
            }
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({ token ->
                Log.e("ccc >>> callKakaoLogin: 로그인 성공 ${token.accessToken}")
            }, { error ->
                Log.e("ccc >>> callKakaoLogin: 로그인 실패 $error")
                snsLoginFail()
            })
            .addTo(kakaoDisposable)

“카카오톡이 설치되어 있지만 로그인하지 않은 단말"인 경우 -> " 최초 로그인 할때에는 계정을 입력하게 화면이 노출” -> “해당 화면에서 계정 입력없이 취소” -> “다시 카카오톡으로 로그인 요청” 케이스 이군요.

302, NotSupportError 에러 발생하면, loginWithKakaoAccount()으로 처리 하시는게 좋을 것 같아요.

그럼 현재로썬 302 에러일 경우 loginWithKakaoAccount() 를 사용하는방법 외엔 제공되지 않는것 인가요?

네, 카카오톡으로 로그인 아니면 카카오계정으로 로그인인데… 톡이 안되는 상황이니 그방법이 최선일 것 같아요~

302일 경우 loginWithKakaoAccount() 처리하여도 사이드 이펙트가 발생하는 경우가 없을까요?

톡로그인 없이 loginWithKakaoAccount만 사용하는 경우도 많으니
어떤 상황으로 인한 분기인가는 영향이 없을 것 같네요.

1개의 좋아요