구글 SignOut 문제

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 : 사무라이 키우기
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

TheBackend.ToolKit.GoogleLogin.Android.GoogleSignOut(GoogleSignOutCallback);
호출했고 성공했습니다 그리고 호출하면서 관련된 데이터는 다삭제하고요 근데 다시 구글 로그인을 눌러도 계정선택이 나오는게 아니라, 원래 로그인했던 계정으로 다시 로그인합니다
이유가 뭘까요?

private void GoogleSignOutCallback(bool isSuccess, string error)
    {
        if (isSuccess)
        {
            PopUp.Instance.ShowSmallMessage("구글 로그아웃 성공");
            PlayerPrefs.DeleteKey("userID");
            userId = null;
            QuitGame();
        }
        else
        {
            Debug.LogError("로그아웃 실패: " + error);
        }
    }

이 함수는 잘실행이 됩니다

안녕하세요 개발자님,
사용하고 계신 기기 설정상 여러 구글 계정이 로그인되어있는 상황이 맞으신지 확인 부탁드리겠습니다.

넵 처음 구글 로그인할때는
회사 구글 계정이랑
제 본계정이 연결돼있습니다

그래서 처음 로그인할떄는 두 계정 선택하라고 잘나옵니다. 하지만 한계정으로 로그인 한 후 로그 아웃을 하면 계속 로그인한 계정으로 연결이됩니다

추가 확인 요청드립니다.
GoogleSignOut 함수를 호출하기 전 로그인이
토큰로그인을 통해 로그인이 되었는지, 구글 로그인 과정을 거쳤는지 확인이 가능할까요?

GoogleSignOut 함수는 구글 로그인이 진행된 후 호출되어야 온전히 처리가 이루어집니다.
TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin 을 호출한 이후 GoogleSignOut 을 시도하여 확인해 주시면 감사하겠습니다.

네 이미 문서대로 TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin(GoogleLoginCallback);
을 실행하고

성공이된다면
var bro = Backend.BMember.AuthorizeFederation(token, FederationType.Google);
이것도 실행하고있습니다

  public void StartGoogleLogin()
    {
        TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin(GoogleLoginCallback);
    }

private void GoogleLoginCallback(bool isSuccess, string errorMessage, string token)
    {
        if (!isSuccess)
        {
            Debug.LogError(errorMessage);
            ShowLoginUI();
            CheckGuestLogin();
            isLoginInProgress = false; // 로그인 실패시 플래그 재설정
            return;
        }
        else
        {
            //("구글 토큰 : " + token);
            var bro = Backend.BMember.AuthorizeFederation(token, FederationType.Google);
            //("페데레이션 로그인 결과 : " + bro);
            if (bro.IsSuccess())
            {
                userId = Backend.UID;
                if (!string.IsNullOrEmpty(Backend.UserNickName))
                {
                    //("유저 닉네임 " + Backend.UserNickName);
                    userNickName = Backend.UserNickName;
                    ES3.Save("userID", userId + "Google");
                    PlayerPrefs.SetString("userID", userId + "Google");
                    PlayerPrefs.Save(); // 즉시 저장
                    StartCoroutine(UpdateUIAfterDelay());
                }

로그아웃도

public void SignOutGoogleLogin()
    {
        TheBackend.ToolKit.GoogleLogin.Android.GoogleSignOut(GoogleSignOutCallback);
    }
private void GoogleSignOutCallback(bool isSuccess, string error)
    {
        if (isSuccess)
        {
            QuitGame();
        }

로그 아웃도 이런식으로 하고있습니다

그럼에도 불구하고 구글 로그인 후 로그아웃 시 계정 선택이 안나오고 자꾸 처음에 구글로 로그인했던계정으로만 로그인이 됩니다

관련 내용 상세히 확인하여 안내드리겠습니다.

기다려주셔 감사합니다.
문의해주신 내용과 관련하여 내부에서는 여러 방면으로 확인 및 테스트를 진행해 보았으나 해당 이슈가 재현되지 않았습니다
다만, 아마도 이전 로그인 정보에 대한 데이터가 로그아웃 이후에도 내부저장소에 계속 남아있어서 발생하는 것으로 추측됩니다.
아래의 안내드리는 방법을 적용해 보신 후, 문제가 해결되는지 확인 부탁 드립니다.

  1. 앱 재설치 혹은 앱 정보에서 데이터 삭제 후, 재실행.
  2. GoogleSignOutCallback 콜백에서 앱을 즉시 종료하지 않고 약간의 시간 지연 후, 앱 종료 처리.
  3. 같은 구글 로그인을 사용하는 다른 sdk(ex: 파이어베이스)와 충돌 여부 확인.
    • 빈 프로젝트에서 뒤끝 로그인 기능만 추가 후, 로그아웃 문제가 동일하게 발생하는지 체크.
    • 정상 동작한다면 다른 sdk나 기능들을 추가하면서 문제 발생 여부를 확인.

설정에서 앱데이터를 삭제를 하면 이런문제가 해결됩니다만 코드로 이를 할수가 없고 또한 구글 플레이스토어 규정에 위배됩니다. 그러면 사용자한테 로그아웃후 설정에서 앱데이터를 삭제하라고 고지를 내리는걸로 하겠습니다…

p.s 이 로그인 기능을 쓰는 다른게임들은 어떻게 로그아웃시 어떤 로직들을 쓰는지 알려주실수 있을까요?

그리고 코드로 앱 데이터네 계정 정보 삭제방법이라든지

좋아요 1

각 고객사분들의 로직들의 정보는 저희로써는 확인할 수 없기에
문의해주신 내용과 관련하여 답변을 드리지 못하는 점 양해 바랍니다

계정 선택 로그인과 관련하여 SignInInteractivity.CanPromptAlways를 통해 통해
로그인 시 계정 선택창을 강제로 띄우는 방법도 확인이 되고 있으나 뒤끝을 이용하는 고객사분들의 구체적인 사례가 공유된바 없어 명확히 답변드리지 못하는 점 양해 바랍니다.

혹 현재 사용하고 계신 구글 로그인 SDK의 버전도 확인해주실 수 있을까요?

현재버전은 1.1.0입니다!

현재 구글 로그인 SDK는 개선된 2.2.0 버전이 제공중에 있습니다.
2.2.0 버전으로 업데이트 후 다시 시도해봐 주실 수 있을까요?

2.2.0으로 변경을해도 변함이 없습니다

좋아요 1

뒤끝 내부에서는 해당 로그인 sdk 버전으로 정상 동작하고 있고 이슈가 재현되지 않기에 현 상황에서 원인을 확인하여 안내드리기에 어려움이 있습니다.

정확한 원인 확인을 위해 개발 및 테스트 환경에 대한 아래의 정보 공유를 요청리며

  • Unity버전
  • 뒤끝베이스 sdk버전
  • 로그아웃 이슈가 발생하는 기기의 기종 및 설치된 안드로이드 버전

추가로 아래의 테스트를 진행하여 공유해 주시면 감사하겠습니다.

  • 유니티에서 새로운 빈 프로젝트 생성 후, 뒤끝과 구글로그인 sdk만 설치하여 로그인과 로그아웃 동작 테스트.
  • 이슈가 발생하는 기기 이외에 다른 기기에서도 동일하게 발생하는지 테스트.