Flutter 카카오 로그인 unlink 시, "authentication token doesn't exist." 에러 문의

문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.


SKD 버전 - kakao_flutter_sdk : ^1.9.5
플랫폼 - Android, iOS
디벨로퍼스 앱ID - 1182446


회원탈퇴를 위해서 UserApi.instance.unlink 를 시도하면
KakaoClientException unknown: authentication token doesn't exist. 에러가 납니다.
에러 발생 후 로그인 했던 카카오톡 계정에서 연결된 서비스 관리를 통해 확인해보니, 해제는 잘 되어있는 것으로 확인됩니다.

추가로, unlink 호출 직전에 TokenManagerProvider.instance.manager.getTokenUserApi.instance.accessTokenInfo 으로 로그를 확인해보니 OAuthToken과 AccessTokenInfo는 잘 나오는 것으로 확인됩니다.

어떤 조치를 취해야하는지 도움 주시면 감사드리겠습니다.

안녕하세요.

해당 오류는 SDK 내 저장된 토큰이 없을 때 발생되는 오류로 현재 정상적인 unlink 요청이 있는 것으로 보아 이 기능이 두번 요청되는 것으로 보입니다.
번거로우시겠지만, unlink 요청 전에 로깅 하시어 두번 처리되지 않는지 확인 부탁드립니다.

빠른 답변 감사합니다!
로그로 확인해보았는데, 호출은 딱 한번 하고 있는 것으로 확인됩니다!

로그가 한번 발생하였을 때, 해당 오류가 발생한다는 말씀이신가요?
로깅 시, getToken 하여 토큰 존재 여부도 함께 확인하셨을 까요?

네 확인했습니다.

  resignKakao() async {
    // 카카오 탈퇴
    print('11111111111111');
    return NetworkClient.auth.delete().then((_) async {
      var token = await kakao.TokenManagerProvider.instance.manager.getToken();
      print('Access Token: ${token?.accessToken ?? "토큰이 없습니다"}');

      var token2 = await kakao.UserApi.instance.accessTokenInfo();
      print('token2: $token2');

      return kakao.UserApi.instance.unlink().then((userid) {
        print(userid);
        return FirebaseClient.auth.signOut();
      });
  }
I/flutter (26742): 11111111111111
I/flutter (26742): REQ: DELETE /auth {}
I/flutter (26742): RES DELETE /auth 
I/flutter (26742): Access Token: ZRX74CxVxgYTwNi_SBVy-oC-PNqdva_TAAAAAQoqJQ0AAAGU_T8SG6bXH4eeWQ3B
I/flutter (26742): token2: {app_id: 1182446, id: 3862105979, expires_in: 43172}

소스코드와 로그 첨부 했습니다!

저희 로직 내에서 unlink 이후 kakao.UserApi.instance.logout(); 이 실행되는 곳을 발견하여
이미 unlink 돼서 getToken 으로 토큰이 없을때에는 return 하도록 처리하였더니 해결 되었습니다.
감사합니다.

2개의 좋아요