카카오톡 로그인 네트워크 문제 질문입니다

  • ios version : 14.4.2

  • sdk version : 2.4.1

  • sdk type : rx_swift

    2021-04-14 11:17:33710 [:말풍선:][AuthController.swift 323:21] -> code_verifier: XhJ0qT4mucVYBw/Qb1GIePQxK/GqXdDgssqSj00cw+1/zaF7DiELaMbXVJBs8UQ/+M52l2DT+9bUcxJknfvPag
    2021-04-14 11:17:33711 [:말풍선:][AuthController.swift 326:25] -> code_challenge: HiZuYzVli-Lx0RQL_5xOkGAo3j_7CUiNX4zCWASzkRA
    2021-04-14 11:17:33778 [:말풍선:][AuthController+Rx.swift 61:29] -> 카카오톡 실행:kakaokompassauth-----------
    2021-04-14 11:17:35.796466+0900 Sharehere[2522:1107211] [connection] nw_read_request_report [C2] Receive failed with error “Software caused connection abort”

로그 4번째 문제가 발생하면서 로그인이 진행되지 않습니다.

Rx방식으로 호출코드는 아래와 같습니다.

let disposeBag = DisposeBag()

if (UserApi.isKakaoTalkLoginAvailable()) {
    UserApi.shared.rx.loginWithKakaoTalk().subscribe(
        onNext: { oauthToken in
            self.loginKakao(token: oauthToken.accessToken)
        }, onError: { error in
            Log.e(“loginWithKakaoTalk() error = \(error)“)
        }).disposed(by: disposeBag)
}
else {
    UserApi.shared.rx.loginWithKakaoAccount().subscribe(
        onNext: { oauthToken in
            self.loginKakao(token: oauthToken.accessToken)
        }, onError: { error in
            Log.e(“loginWithKakaoAccount() error = \(error)“)
        }).disposed(by: disposeBag)
}

위 코드로 호출하면 카카오톡으로 이동해서 동의하는 페이지가 나오고
동의를 누르면 앱으로 돌아옵니다

그리고 상단메시지를 3~4번가량 연속으로 받았습니다.

코드속에서 onError를 타지도 않고 저상태에서 끝나게 됩니다

검색해보니 Background관련 문제로 보이는데 추가로 설정해줘야 하는게 있나요?

안녕하세요.

위 코드를 수행하기전에

https://developers.kakao.com/docs/latest/ko/kakaologin/ios#before-you-begin

링크의 카카오톡으로 로그인을 위한 설정 에 있는

import KakaoSDKAuth
...

class AppDelegate: UIResponder, UIApplicationDelegate {
    ...
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        if (AuthApi.isKakaoTalkLoginUrl(url)) {
            return AuthController.handleOpenUrl(url: url)
        }

        return false
    }
    ...
}

이것 추가하셨을까요?

네 설정되어있습니다
rx 가이드에서는

return AuthController.rx.handleOpenUrl(url: url)

라고 되어 있어서 AuthController.rx로 return하게 해놨습니다

앱아이디 부탁드려요.

그리고,
카톡 로그인시부터 해당 에러 까지 xcode 로그 캡처 부탁드립니다.

앱아이디는 121986 입니다
콘솔 비운후 로그인 버튼 누른 순간부터 되돌아와서 반응없는 부분까지 로그입니다
37

아 rx 쓰시는군요.

그런데, 서버로그상에는 토근발급 리퀘스트가 안들어왔어요.
즉,

위 코드가 실행이 안되었습니다.

혹시 swiftUI나 sceneDelegate 쓰시는지요?

그리고, 저희가 배포한 샘플앱에서도 같은 현상이 발생하는지 확인부탁드립니다.

그리고, 실제 사용하는 로그인 코드를 메세지로 보내주시면 봐드리겠습니다.

샘플 실행후 문제가 있으면 코드 전달드리겠습니다

원인은 모르겠지만 질문글에서 작성된 loginWithKakaoTalk()를 일반 Swift방식으로 변경하고
SceneDelegate에서 AuthController.handleOPenUrl()AuthController.rx.handelOpenUrl()로 변경했는데 작동이 됩니다
도와주셔서 감사합니다

일반 swift 방식이라는것이 무엇인지요? SceneDelegate 를 안쓴다는 의미인가요?

가이드문서에서 Swift와 RxSwift로 분리되어있어서 RxSwift가 아닌 Swift코드에 대한 표현이었는데 개인적인 표현이라 헷갈리신거 같아요 죄송합니다

1개의 좋아요

아 아닙니다. ^^ 궁금해서 문의드려봣어요~