문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
안녕하십니까? sdk 버전 업데이트 후 401 에러가 통계에 잡히고 있어서 문의드립니다.
변경 전 통합 sdk 버전 : 2.11.0
변경 후 통합 sdk 버전 : 2.16.0
api : v1/user/access_token_info
sdk 버전업이 카카오 로그인 api 및 401 에러에 영향이 있을까요?
해당 에러를 피하는 방법이 있을까요?
감사합니다.
문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
안녕하십니까? sdk 버전 업데이트 후 401 에러가 통계에 잡히고 있어서 문의드립니다.
변경 전 통합 sdk 버전 : 2.11.0
변경 후 통합 sdk 버전 : 2.16.0
api : v1/user/access_token_info
sdk 버전업이 카카오 로그인 api 및 401 에러에 영향이 있을까요?
해당 에러를 피하는 방법이 있을까요?
감사합니다.
안녕하세요.
SDK 버전이 해당 API 사용에 영향을 주지는 않습니다.
확인을 위해 앱 ID 부탁드립니다.
앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다
ex) 123456
안녕하세요.
현재 사용중인 앱 ID : 131581 입니다.
확인 부탁드립니다.
감사합니다.
안녕하세요.
혹시, 서비스 앱에서 accessTokenInfo 메소드를 사용하셨을까요
만약 그렇다면, 이를 호출 하시는 이유가 어떻게 되실까요?
안녕하세요.
현재 카카오 app, 계정으로 로그인 하는 2가지 경우에 사용자 고유정보를 호출하기 위해 사용하고 있습니다.
처음 loginWithKakaoTalk, loginWithKakaoAccount 를 통해 로그인 성공 유무를 얻어오고
accessTokenInfo 를 통해서 사용자 정보를 얻어오는지 성공유무를 판단한 후
UserApiClient.instance.me 를 통해 최종 사용자 정보를 알아오는 방식으로 진행하고 있습니다.
혹시 accessTokenInfo 를 호출하는데 문제가 있을까요?
이전에도 동일 로직이였다가
9/18 에 2.16.0 버전으로 올린 이후에 계속 해당 부분에서 401 에러가 기록되고 있습니다.
accessTokenInfo는 loginWithKakaoTalk, loginWithKakaoAccount 성공 이후(error가 없을때)에 호출하시나요? 아니면, error 값 유무와 상관없이 콜백에서 무조건 호출 하시나요?
loginWithKakaoTalk, loginWithKakaoAccount 성공 이후 error 가 null 일 경우 호출합니다.
확인 감사합니다.
서비스에서 accessTokenInfo 호출 시, 발생한 오류는 모두 사용자 토큰이 만료되어 발생한 오류 입니다.
1. 우선, 정확한 원인을 파악하고자 합니다.
서비스 운영에 무리가 없으시다면 아래 내용에 대해 답변 부탁드립니다. (@woody.ho ← 개인 메시지로 답변 주셔도 좋습니다.)
2. 다른이야기지만, 해당 로직에서 accessTokenInfo 메소드 사용하지 않으셔도 됩니다.
accessTokenInfo 호출 하지 않으셔도 me에서도 회원번호(id)를 얻을 수 있습니다.
그리고 me 호출 시점에 접근토큰이 만료되었다면 SDK 내부에서 자동으로 갱신도 해드립니다. 따라서 로그인 콜백에서 accesTokenInfo 호출하지 않으셔도 기대하시는 결과를 얻으실 수 있습니다.
cc @tony.mb
에러 통계에 잡히고 있다면, accessTokenInfo 에러 콜백을 따로 로깅하고 계시는걸까요?
관련 오류 통계를 어떻게 수집하고 계실까요?
=> 카카오 개발자 홈페이지인 https://developers.kakao.com/ 의 사용중인 api 통계 페이지에서 확인을 진행중에 있으며, 따로 내부적으로 로깅을 하고 있지는 않습니다.
loginWithKakaoTalk, loginWithKakaoAccount, accessTokenInfo, me 까지의 코드 블럭을 공유해 주시면 저희 안드로이드 SDK 담당자와 좀 더 확인해 보도록 하겠습니다.
=> 내부적으로 논의 후 다시 답변 드리도록 하겠습니다.
다른이야기지만, 해당 로직에서 accessTokenInfo 메소드 사용하지 않으셔도 됩니다.
=> 그렇다면 해당 메소드를 사용하지 않으면 현재 카카오 디벨로퍼에 기록되고 있는 401 에러가 발생하지 않을수도 있다는 것 일까요? 로직 수정을 고려해봐야 하는 부분이네요. 조언 감사합니다.
위의 답변주신 내용을 생각해본다면 토큰 만료로 인해 발생하는 에러기록으로 판단되는데, 서비스 운영중 해당 에러로 인한 불편함은 없을까요? 자동 갱신이 된다면 큰 문제가 없을것 같긴 한데, 다른 문제점이 있을지 궁금합니다.
2.16.0 부터 개선된 토큰 관리에 따라 서비스에서 오류가 증가한 것으로 오해하실 수 있습니다.
추가된 기능이 서비스에 영향을 주지 않습니다.
통계 페이지는 개선할수 있도록 내부 전파 하도록 하겠습니다.
1, 2. 코드 블럭 공유해 주시지 않아도 됩니다.
구글 앱 통계에 오류가 잡히신 걸로 이해하고 코드도 살펴보고자 하였는데요.
디벨로퍼스 통계 페이지라면, 원인이 명확하여 전달 드립니다.
2.16.0 버전 부터는 SDK 내부에서 사용자의 접근 토큰을 이따금 자동 갱신 합니다.
이는 서비스 앱들의 평균적인 세션 시간만큼 사용자의 접근 토큰을 갱신해 두기 위한 내부 자동 갱신 방법중 하나로 사용자의 장시간 API 미사용에 의해 다시 로그인 해야 하는 경우를 줄이기 위해 추가된 기능입니다.
때문에 네이티브 앱을 사용하는 연결된 사용자가 많을 수록 장기간 앱을 사용한 적이 없는 사용자가 많을수록 디벨로퍼스 통계 페이지에 401 오류가 많이 로깅될 수 있습니다.
3. 이번 401오류는 서비스 앱 원인으로 오류가 발생된 케이스가 아닙니다.
2.16.0 부터 개선된 토큰 관리에 따라 서비스에서 오류가 증가한 것으로 오해하실 수 있습니다.
추가된 기능이 서비스에 영향을 주지 않습니다.
통계 페이지는 개선할수 있도록 내부 전파 하도록 하겠습니다.
이와 별개로 로그인 성공 이후, accessTokenInfo 호출은 항상 성공하기에 호출 불필요하니 추후 로직을 정리하시는것을 고려해 보시는것도 좋을것 같습니다.
안녕하세요.
본 이슈는 iOS: 2.18.1, Android: 2.17.0 버전부터 해결되었습니다.
불편을 드려 죄송합니다.