gpgs 페러데이션으로 로그인 할시 유저 목록에는 보이지 않음

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

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

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

  • 뒤끝 SDK 버전 : 5.11.4

밑에 있는 로직으로 대충 가입되어 있는 유저일시, 바로 씬으로 넘어가고, 만얀 안되어있다면 회원가입 요청을 보내려는 스크립트입니다. 한번 테스트용으로 실행해보니, 로그인은 원활하게 되지만, 콘솔의 유저 목록에는 보이지 않습니다. 참고로 뒤끝과, gpgs는 Initialize가 되어있습니다.

public void Login()
    {
        Social.localUser.Authenticate((bool success) => {
            if(success){
                // 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
                string token = GetTokens();

                var bro = Backend.BMember.CheckUserInBackend(token, FederationType.Google);
                if (bro.GetStatusCode() == "204")
                {
                    //SceneManager.LoadScene("InGame");
                }
                else if (bro.GetStatusCode() == "200")
                { 
                    Backend.BMember.AuthorizeFederation(token, FederationType.Google, "gpgs");
                    SetName();
                    SceneManager.LoadScene("InGame");
                }
            }
            else {
                // 로그인 실패
                // if (!loginFailText.activeSelf) {
                //     loginFailText.SetActive(true);
                // }
                Debug.Log("Login failed for some reason");
            }
        });
    }});
    }

안녕하세요, 개발자님.

문의하신 내용 확인을 위해서는 프로젝트 정보가 필요합니다.
프로젝트 정보 확인하여 회신 주시면, 상세히 확인하여 답변드릴 수 있도록 하겠습니다.

프로젝트이름은 Grow_Slime입니다. error코드는 없고, Status는 신규가입으로 그대로 204뜨네요

안녕하세요 개발자님,
말씀해주신 프로젝트 정보로 상세 내용 확인해보았으나,
해당 프로젝트에는 뒤끝 서버로 어떠한 요청 진행한 이력이 확인되지 않습니다.

유니티 인스펙터창에 입력하신 client app id 정보를 확인해 공유해주시면 감사하겠습니다.


이겁니다.

좋아요 1

물론 방금 다시 코드를 수정하여 204일때 회원가입 요청을 보내는 걸로 코드를 고쳐보았지만, 그래도 로그에선 204만 뜨고 안되네요

public void Login()
    {
        Social.localUser.Authenticate((bool success) => {
            if(success){
                // 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
                string token = GetTokens();

                if (token == null)
                {
                    if (!loginFailText.activeSelf) {
                        loginFailText.SetActive(true);
                    }
                }

                var bro = Backend.BMember.CheckUserInBackend(token, FederationType.Google);
                Debug.Log(bro.GetStatusCode());
                if (bro.GetStatusCode() == "204")
                {
                    Backend.BMember.AuthorizeFederation(token, FederationType.Google, "gpgs");
                    SetName();
                    SceneManager.LoadScene("InGame");
                }
                else if (bro.GetStatusCode() == "200")
                { 
                    Backend.BMember.AuthorizeFederation(token, FederationType.Google, "gpgs");
                    SetName();
                    SceneManager.LoadScene("InGame");
                }
            }
            else {
                // 로그인 실패
                if (!loginFailText.activeSelf) {
                    loginFailText.SetActive(true);
                }
                Debug.Log("Login failed for some reason");
            }
        });
    }

    public void SetName()
    {
        var uid = Guid.NewGuid().ToString();
        Backend.BMember.CreateNickname("New" + uid[..5]);
    }

공유해주신 client app id 를 통해서도 요청 정보가 확인되지 않습니다.

로그인 함수에서도 로그인과 회원가입을 구별할 수 있습니다.
아래 코드를 통해 시도 이용해 주시면 감사하겠습니다.

public void Login()
{
    Social.localUser.Authenticate((bool success) =>
    {
        if (success)
        {
            // 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
            string token = GetTokens();

            var bro = Backend.BMember.AuthorizeFederation(token, FederationType.Google);
            if (bro.GetStatusCode() == "200") // 로그인된 경우
            {
                SceneManager.LoadScene("InGame");
            }
            else if (bro.GetStatusCode() == "201") // 회원가입된 경우
            {
                SetName();
                SceneManager.LoadScene("InGame");
            }
            else
            {
                Debug.LogError("로그인 실패 : " + bro);
            }
        }
        else
        {
            // 로그인 실패
            // if (!loginFailText.activeSelf) {
            //     loginFailText.SetActive(true);
            // }
            Debug.Log("Login failed for some reason");
        }
    });
}
좋아요 1

추가 확인 내용 공유드립니다.
확인 시 로그인 실패로 확인되며, bad google_hash, 잘못된 google_hash 입니다 에러가 확인됩니다.
콘솔에 구글 해시키 등록 후 이용을 부탁드리며,
아래 개발자 문서를 참고해 주시면 감사하겠습니다.

HashKey를 어디에 넣으면 될까요?

뒤끝 콘솔의 인증 정보 메뉴에 등록해주시면 됩니다.

오 정상적으로 해결되었습니다. 감사합니다 :slight_smile: