지금 앱 내에서 카카오 톡이 설치되지 않은 사용자일 경우 호출되는 함수는
UserApiClient.rx.loginWithKakaoAccount(context)
입니다.
// 사용중인 카카오 연결하기 코드
fun startWithKakao(): Single<OAuthToken> {
return if (UserApiClient.instance.isKakaoTalkLoginAvailable(context)) {
UserApiClient.rx.loginWithKakaoTalk(context)
.onErrorResumeNext { error ->
// 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
// 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
if ((error is ClientError && error.reason == ClientErrorCause.Cancelled) ||
(error is AuthError && error.reason == AuthErrorCause.AccessDenied)
) {
Single.error(error)
} else {
// 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인 시도
UserApiClient.rx.loginWithKakaoAccount(context)
}
}
} else {
UserApiClient.rx.loginWithKakaoAccount(context)
}
}
전달주신 샘플앱에서 확인한 부분
OpenFragmentRx.kt 의 UserApiClient.rx.loginWithKakaoAccount(context) 함수
이 함수로 2단계 인증 진행했을때는 새로고침되는 것 같기도 한데,
모든 동작 완료 후 로그인 성공에 break point 찍었을때 들어오질 않아서 확실히 알 수가 없었습니다.
UserApiClient.rx.loginWithKakaoAccount() 함수 내부까지 디버깅해봐야할까요?