카카오 로그인 오류

디벨로퍼스 앱 ID : 1007304
sdk 버전 : v2-all:2.18.0

안녕하세요 로그인 관련하여서 질문드립니다.
카카오톡으로 로그인의 경우는 토큰 받기에 성공하였으나,
카카오계정으로 로그인의 경우는 계속 실패합니다.
카카오계정으로 로그인 실패
ClientError(reason=Cancelled, msg=user cancelled.)

이메일로 로그인하기를 할 경우 계속 실패를 하는데 해당 에러는 어떤 문제 어떤 문제때문에 일어나는 것인지 가이드 부탁드립니다.

감사합니다.

안녕하세요

구현하신 로그인 코드와 이슈 재현 영상 첨부 부탁드리겠습니다

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = SignInPageActivityBinding.inflate(layoutInflater)

    val view = binding.root
    setContentView(view)

    binding.kakaoSignUp.setOnClickListener() {
        kakaoHandle()
    }
    KakaoSdk.init(this, BuildConfig.NATIVE_KEY)
}
companion object{
    const val TAG = "kakaoLoginAuth"
}

fun kakaoHandle() {
    // 로그인 조합 예제
    // 카카오계정으로 로그인 공통 callback 구성
    // 카카오톡으로 로그인 할 수 없어 카카오계정으로 로그인할 경우 사용됨

    val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
        if (error != null) {
            Log.e(TAG, "카카오계정으로 로그인 실패", error)
        } else if (token != null) {
            Log.i(TAG, "카카오계정으로 로그인 성공 ${token.accessToken}")
        }
    }

    // 카카오톡이 설치되어 있으면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인
    if (UserApiClient.instance.isKakaoTalkLoginAvailable(context = this@KakaoSignUpActivity)) {
        UserApiClient.instance.loginWithKakaoTalk(context = this@KakaoSignUpActivity) { token, error ->
            if (error != null) {
                Log.e(TAG, "카카오톡으로 로그인 실패", error)

                // 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
                // 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
                if (error is ClientError && error.reason == ClientErrorCause.Cancelled) {
                    return@loginWithKakaoTalk
                }

                // 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인 시도
                UserApiClient.instance.loginWithKakaoAccount(context = this@KakaoSignUpActivity, callback = callback)
            } else if (token != null) {
                Log.i(TAG, "카카오톡으로 로그인 성공 ${token.accessToken}")
            }
        }
    } else {
        UserApiClient.instance.loginWithKakaoAccount(context = this@KakaoSignUpActivity, callback = callback)
    }
}

}
재현 영상은 업로드 못하여서 구글링크 첨부드립니다.
https://drive.google.com/file/d/15A7E5dqseLkjWDhen3M-W58nRTV39KIK/view?usp=sharing

AndroidManifest 파일에 추가 설정이 되어있지 않은 것으로 보여요. 가이드 참고하셔서 설정이 되어있는지 확인 부탁드립니다.

안녕하세요! 해당 문제를 해결하여서 계정로그인 시 에러는 안나고 있는데, callback 요청이 들어가면 아무런 반응을 안하는데 어떤 곳을 잘못 한걸까요?

카카오 로그인 구현 화면
fun kakaoHandle() {

    val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
        if (error != null) {
            Log.e(TAG, "카카오계정으로 로그인 실패", error)
        } else if (token != null) {
            Log.i(TAG, "카카오계정으로 로그인 성공 ${token.accessToken}")
        }
    }
    // 로그인 조합 예제
    // 카카오계정으로 로그인 공통 callback 구성
    // 카카오톡으로 로그인 할 수 없어 카카오계정으로 로그인할 경우 사용됨


    // 카카오톡이 설치되어 있으면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인
    if (UserApiClient.instance.isKakaoTalkLoginAvailable(context = this@KakaoSignUpActivity)) {
        UserApiClient.instance.loginWithKakaoTalk(context = this@KakaoSignUpActivity) { token, error ->
            if (error != null) {
                Log.e(TAG, "카카오톡으로 로그인 실패", error)
                Toast.makeText(this, "카카오톡으로 로그인 실패!", Toast.LENGTH_SHORT).show()
                // 사용자가 카카오톡 설치 후 디바이스 권한 요청 화면에서 로그인을 취소한 경우,
                // 의도적인 로그인 취소로 보고 카카오계정으로 로그인 시도 없이 로그인 취소로 처리 (예: 뒤로 가기)
                if (error is ClientError && error.reason == ClientErrorCause.Cancelled) {
                    Log.e(TAG, "카카오톡으로 로그인 실패", error)
                    return@loginWithKakaoTalk
                }
                // 카카오톡에 연결된 카카오계정이 없는 경우, 카카오계정으로 로그인 시도
                UserApiClient.instance.loginWithKakaoAccount(context = this@KakaoSignUpActivity, callback = callback)
            } else if (token != null) {
                Log.d(TAG, "카카오톡으로 로그인 성공 ${token.accessToken}")
                Toast.makeText(this, "카카오톡으로 로그인 성공!", Toast.LENGTH_LONG).show()
            }
        }
    } else {
        UserApiClient.instance.loginWithKakaoAccount(context = this@KakaoSignUpActivity, callback = callback)
        Log.d(TAG, "계정로그인")
    }
}

UserApiClient.instance.loginWithKakaoAccount(context = this@KakaoSignUpActivity, callback = callback)
Log.d(TAG, “계정로그인”) 이 부분을 통과 하는 것까지 확인하였습니다.

manifest부분입니다.

 <meta-data
        android:name="com.kakao.sdk.AppKey"
        android:value="앱키"/>

    <activity
       android:name="com.example.alldayfit.settings.login.KakaoSignUpActivity"
        android:launchMode="singleTask"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:host="oauth"
                android:scheme="kakao앱키" />
        </intent-filter>
    </activity>

앱키라고 되어 있는 부분들은 정상적으로 들어가있습니다!

카카오 계정 로그인을 정상적으로 실행하기 위해서는 com.kakao.sdk.auth.AuthCodeHandlerActivity 클래스에다 intent-filter를 등록해줘야하는데, 현재는 com.example.alldayfit.settings.login.KakaoSignUpActivity 클래스에 intent-filter가 등록되어서 정상적으로 동작하지 못하는 것으로 보여요.

가이드 확인하셔서 intent-filter를 등록하시면 정상적으로 동작할 것 같아요