Wook No.1
카카오톡 로그인 AuthError statusCode=302 KakaoTalk is installed but not connected to Kakao account. 본문
Android
카카오톡 로그인 AuthError statusCode=302 KakaoTalk is installed but not connected to Kakao account.
Wook No.1 2023. 4. 20. 08:25카카오 로그인 시도시 카카오톡이 설치 되어있지만 로그인 되어있지 않은 상태에서 아래와 같은 에러가 발생한다.
AuthError(statusCode=302, reason=Unknown, response=AuthErrorResponse(error=NotSupportError, errorDescription=KakaoTalk is installed but not connected to Kakao account.))
기존에 아래와 같이 사용했을때 카카오톡이 설치 유무만 확인하도록 처리했지만
fun kakaoLogin() {
if (UserApiClient.instance.isKakaoTalkLoginAvailable(context)) {
UserApiClient.instance.loginWithKakaoTalk(context, callback = kakakoLoginCallback)
} else {
UserApiClient.instance.loginWithKakaoAccount(context, callback = kakakoLoginCallback)
}
}
private val kakakoLoginCallback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
if (error != null) {
Log.e("TAG", "로그인 실패", error)
}
else if (token != null) {
Log.i("TAG", "로그인 성공 ${token.accessToken}")
}
}
아래와 같이 콜백에서 error log로 statusCode(302)를 분기 처리 해서 web으로 다시 로그인 처리 할수 있다.
fun kakaoLogin() {
if (UserApiClient.instance.isKakaoTalkLoginAvailable(context)) {
UserApiClient.instance.loginWithKakaoTalk(context, callback = kakakoLoginCallback)
} else {
loginWithKakaoAccount()
}
}
private fun loginWithKakaoAccount(){
UserApiClient.instance.loginWithKakaoAccount(context, callback = kakakoLoginCallback)
}
private val kakakoLoginCallback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
if (error != null) {
if (error.toString().contains("statusCode=302")){
loginWithKakaoAccount()
} else {
Log.e("TAG", "로그인 실패", error)
}
}
else if (token != null) {
Log.i("TAG", "로그인 성공 ${token.accessToken}")
}
}
참고
'Android' 카테고리의 다른 글
Android ScrollView 보이는 영역 체크 (0) | 2024.09.19 |
---|---|
Android InAppReview (0) | 2024.08.06 |
[에러]Unknown host CPU architecture: arm64 , Android NDK (0) | 2023.02.06 |
Webview 파일 다운로드 (0) | 2022.12.26 |
Gradle Repository 등록시 프로토콜 보안 오류 (0) | 2022.09.15 |
Comments