Android 401에러

2.4.1 을 사용하고 있습니다.

if (userApiClient.isKakaoTalkLoginAvailable(context)) {
userApiClient.loginWithKakaoTalk(context, callback = callback)
} else {
userApiClient.loginWithKakaoAccount(context, callback = callback)
}

이렇게 호출하고 있는데 특정 단말에서만 401에러가 발생하고 있는데 의심이 가는 부분을 알 수 있을까요??

오류가 발생하는 단말에는 카카오톡이 2개 설치 되어 있습니다.

안녕하세요~

카카오톡이 2개 설치되었다는 것은 제조사에서 제공하는 듀얼메신저 기능을 사용해서 설치하신건가요?

네, 그렇습니다.

또 다른 단말에서는
카카오톡은 설치되어 있지만 로그인(?) 하지 않은 단말에서도 동일한 현상일 발생하였습니다.

제가 보유한 기기에서는 듀얼메신저 기능을 사용해도 말씀하신 이슈가 재현되지 않아서 앱 ID를 알려주시면 로그 확인 후 안내해드리겠습니다.

어떻게 전달 드려야 되나요?? 다른 분들도 이 포스트를 보실 수 있는 상태인거 같아서 질문 드립니다.

추가로, 혹시 카카오톡 설치만 되어있고 로그인하지 않은 상태에서도 재현 테스트를 진행하셨는지 궁금합니다.

듀얼메신저로 카카오톡 설치만 되어있고 로그인하지 않은 상태에서도 재현이 되지 않았습니다ㅠㅠ

앱 id는 외부에 공개되어도 큰 문제가 없어서 댓글로 남겨두셔도 괜찮을 것 같습니다.

혹시라도 걱정되신다면 쪽지로 전달해주셔도 괜찮습니다.

쪽지로 전달 드렸습니다. 혹시 잘 못 드렸으면 다시 알려주시면 감사하겠습니다.

안녕하세요 전달해주신 쪽지는 확인했습니다.

확인해보니 전달해주신 데이터는 앱 id가 아니고 앱 키인 것으로 확인됩니다.

전송해주신 앱 키는 외부로 노출되면 안되는게 맞습니다.

제가 말씀드린 앱 id는 디벨로퍼스 사이트 접속하셔서 [내 어플리케이션] 을 누르셨을 때, 앱에 ID123456 와 같은 방식으로 적혀있는 숫자 값입니다.

확인해보시고 앱 키 전달주신 글에 댓글로 앱 id 정보 추가해주시면 감사하겠습니다. :slight_smile:

그렇군요 제가 잘 못 알고 있었네요.
ID 211591
입니다.

전달해주신 앱 id로 최근 한달 동안의 로그를 확인했는데, 로그인에서 401 에러가 발생한 것은 없고,

401 에러가 발생한 경우는 로그아웃할 때, 카카오링크로 커스텀 메시지 전송할 때 밖에 없는걸로 확인됐습니다.

다시 한번 코드 확인 부탁드립니다 :slight_smile:

2021-03-18 14:33:00.855 20902-20902E/SignInActivity: ApiError(statusCode=401, reason=InvalidToken, response=ApiErrorResponse(code=-401, msg=no authentication key!, apiType=null, requiredScopes=null, allowedScopes=null))
at com.kakao.sdk.network.ApiCallback$Companion.translateError(ApiCallback.kt:69)
at com.kakao.sdk.network.ApiCallback.onResponse(ApiCallback.kt:46)
at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$1.run(DefaultCallAdapterFactory.java:83)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7643)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

이렇게 계속 발생하고 있는데… 어딜 좀 더 확인해야 할까요??

오류 발생하는 부분에서 api를 어떻게 호출하고 있으신지 코드 첨부 가능하실까요?

14

if (userApiClient.isKakaoTalkLoginAvailable(context)) {
userApiClient.loginWithKakaoTalk(context, callback = callback)
} else {
userApiClient.loginWithKakaoAccount(context, callback = callback)
}

이렇게 호출하고 있습니다.

확인 하였습니다.
authError 가 난 경우를 처리하지 않아서 발생한 문제 였습니다.

응답해주셔서 감사했습니다.

1개의 좋아요

정확한 이슈 파악을 위해서, 어떤게 문제였고 어떻게 해결하셨는지 간단하게 공유해주시면 감사하겠습니다.

카카오톡은 설치되어 있지만 로그인이 되어 있지 않은 상태에서
userApiClient.loginWithKakaoTalk 를 호출했고, AuthError 가 발생하였습니다.

하지만 저희쪽 코드에서
AuthError는 처리하지 않고, ClientError만 처리하고 있었습니다.

따라서 AuthError가 정상적인 성공으로 처리되었고,
이후에 userApiClient.me 를 호출해서 401에러를 받은걸로 확인하고 있습니다.

AuthError에 대한 처리를 추가해서 수정하려고 합니다.

2개의 좋아요

이슈 내용 공유해주셔서 감사합니다

좋은 하루 되세요 :slight_smile: