로그인 에러 관련 문의

문의를 남기실 경우 다음 항목을 작성해 주시면 빠른 답변 처리에 도움이 됩니다.

  • 프로젝트명 : RedBean
  • 뒤끝SDK 버전 :
  • 에러 코드 :

안녕하세요,
RedBean 프로젝트를 운영하고 있는 개발자입니다.

오늘부터 일본 유저 유입이 시작됐는데,
해당 유저들의 접속 기록이 이상하여 살펴보는 중입니다.

한국 유저의 정보를 보면,
보통 첫 계정 생성 시간과 마지막 접속시간이 차이가 나는데
일본 유저들의 경우 일치하는 경우가 대부분이라
무언가 문제가 있는 것은 아닐까하여 체크 중입니다.

혹시 첫 계정 생성이후 재로그인에 문제가 있나 해서
콘솔의 로그인 실패 기록을 살펴보는데, 에러로그가 많이 쌓여있드라구요.
이 에러로그가 어느경우에 발생한 건지 혹시 확인이 가능할까요?

이외에도 혹시 제 프로젝트에 접속 및 인증 관련하여 특이한 에러들이 발생하고 있는지 한번 확인 해주시면 감사하겠습니다ㅠㅠ

안녕하세요 개발자님,
담당 부서 통하여 상세 확인 후 답변드리도록 하겠습니다.

안녕하세요.

유저 로그인( RefreshTheBackendToken 혹은 LoginWithTheBackendToken) 과정에서 오류가 발생하고 있는 것을 확인했습니다.
이는 한번에 같은 요청을 여러번 보내, 이미 항목에 대한 요청이 중복 진행되어 발생하는 것으로 파악됩니다.

이와 관련하여 클라이언트 코드 검토를 부탁드립니다.

감사합니다.

@jake1

서버에 데이터를 저장하기 전에
아래와 같이 토큰이 살아 있는지를 체크해서 저장하고 있습니다.
혹시 아래 코드에 문제 있는 부분이 있을까요?

    SendQueue.Enqueue(Backend.BMember.IsAccessTokenAlive, (callback) =>
    {
        // 토큰 살아 있는 경우
        if (callback.IsSuccess())
        {
            SendQueue.Enqueue(Backend.GameData.Update, "User", inDate, param, (callback) =>
            {
                Debug.Log("/ ********** Server Data Update Complete ***************** /");
                string a = "";
                for (int i = 0; i < updateParams.Length; i++)
                    a += " " + updateParams[i];
                Debug.Log(a);
            });                 
        }

        // 토큰 죽은 경우
        else
        {
            Debug.Log("/ ********** Token Need To Refresh ***************** /");
            Backend.BMember.RefreshTheBackendToken((callback) =>
            {
                SendQueue.Enqueue(Backend.GameData.Update, "User", inDate, param, (callback) =>
                {
                    Debug.Log("/ ********** Server Data Update Complete ***************** /");
                    string a = "";
                    for (int i = 0; i < updateParams.Length; i++)
                        a += " " + updateParams[i];
                    Debug.Log(a);
                });
            });               
        }
    });

안녕하세요 개발자님.

코드의 경우 다른 함수들은 SendQueue로 되어있는 반면, Backend.BMember.RefreshTheBackendToken 해당 함수는 비동기로 구현되어 있어 함수 호출 순서로 인해 문제가 발생할 경우도 있습니다.

또한 위에 jake님이 말씀하신 것처럼 만약 함수가 두번 호출될 경우, 비동기라면 순서대로가 아닌 동시에 호출되기 때문에 중복호출되어 오류가 발생할 수 있으니 해당 부분 다시 한번 검토해주시면 감사하겠습니다.