Esempio n. 1
0
    // 커스텀 계정을 구글 계정으로
    public void OnClickChangeCustomToFederation()
    {
        BackendReturnObject BRO = Backend.BMember.ChangeCustomToFederation(GetTokens(), FederationType.Google);

        if (BRO.IsSuccess())
        {
            Debug.Log("페더레이션 계정으로 변경 완료");
        }
        else
        {
            switch (BRO.GetStatusCode())
            {
            case "400":
                if (BRO.GetErrorCode() == "BadParameterException")
                {
                    Debug.Log("이미 ChangeCustomToFederation 완료 되었는데 다시 시도한 경우");
                }

                else if (BRO.GetErrorCode() == "UndefinedParameterException")
                {
                    Debug.Log("customLogin 하지 않은 상황에서 시도한 경우");
                }
                break;

            case "409":
                // 이미 가입되어 있는 경우
                Debug.Log("Duplicated federationId, 중복된 federationId 입니다");
                break;
            }
        }
    }
Esempio n. 2
0
    // GPGS 로그인 
    private IEnumerator Login()
    {
        progressText.text = "구글 로그인 성공";
        yield return(GameManager.YieldInstructionCache.WaitForEndOfFrame);

        // 이미 로그인 된 경우
        if (Social.localUser.authenticated == true)
        {
            progressText.text = "구글 로그인 성공";
            BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
            id = Social.localUser.id;

            if (BRO.GetStatusCode().Equals("403") && BRO.GetMessage().Equals("forbidden blocked user, 금지된 blocked user 입니다"))
            {
                blockText.text = BRO.GetErrorCode();
                blockPopUp.SetActive(true);
                yield break;
            }
            ConfirmUser();
        }
        else
        {
            Social.localUser.Authenticate((bool success) =>
            {
                if (success)
                {
                    progressText.text = "구글 로그인 성공";
                    // 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입요청
                    BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
                    id = Social.localUser.id;

                    if (BRO.GetStatusCode().Equals("403") && BRO.GetMessage().Equals("Forbidden blocked user, 금지된 blocked user"))
                    {
                        blockText.text = BRO.GetErrorCode();
                        blockPopUp.SetActive(true);
                        return;
                    }
                    ConfirmUser();
                }
                else
                {
                    progressText.text = "구글 로그인 실패";
                    // 로그인 실패
                    Debug.Log("Login failed for some reason");
                }
            });
        }

        Backend.Initialize(() =>
        {
            if (Backend.IsInitialized)
            {
                Debug.Log(Backend.Utils.GetGoogleHash());
            }
            else
            {
                Debug.Log("초기화실패");
            }
        });
    }
Esempio n. 3
0
    // 커스텀 계정을 구글 계정으로
    public void OnClickChangeCustomToFederation()
    {
        BackendReturnObject BRO = Backend.BMember.ChangeCustomToFederation(GetTokens(), FederationType.Google);

        if (BRO.IsSuccess())
        {
            Debug.Log("페더레이션 계정으로 변경 완료");


            if (PlayerPrefs.GetString("login") == "Custom")
            {
                PlayerPrefs.DeleteKey("id");
                PlayerPrefs.DeleteKey("password");

                PlayerPrefs.SetString("login", "Google");
            }
        }
        else
        {
            switch (BRO.GetStatusCode())
            {
            case "400":
                if (BRO.GetErrorCode() == "BadParameterException")
                {
                    Debug.Log("이미 ChangeCustomToFederation 완료 되었는데 다시 시도한 경우");
                }

                else if (BRO.GetErrorCode() == "UndefinedParameterException")
                {
                    Debug.Log("customLogin 하지 않은 상황에서 시도한 경우");
                }
                break;

            case "409":
                // 이미 가입되어 있는 경우
                Debug.Log("Duplicated federationId, 중복된 federationId 입니다");
                PopupManager.instance.Alram("Error_05");
                break;
            }
        }
    }
Esempio n. 4
0
    // 동기방식 회원가입
    public void Register()
    {
        BackendReturnObject BRO = Backend.BMember.CustomSignUp(ID.text, PW.text);

        if (BRO.IsSuccess())
        {
            print("동기방식 회원가입 성공");
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserFunc");
        }
    }
Esempio n. 5
0
    // 동기 방식 유저 닉네임 업데이트
    public void UpdateUserNickname()
    {
        BackendReturnObject BRO = Backend.BMember.UpdateNickname(Nickname.text);

        if (BRO.IsSuccess())
        {
            print("동기 방식 닉네임 업데이트 완료");
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserNickname");
        }
    }
Esempio n. 6
0
    // 동기 방식 비밀번호 초기화
    public void ResetPW()
    {
        BackendReturnObject BRO = Backend.BMember.ResetPassword(ID.text, email.text);

        if (BRO.IsSuccess())
        {
            print("동기 방식 초기화된 비밀번호 발송 완료");
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserPW");
        }
    }
Esempio n. 7
0
    // 동기 방식 비밀번호 변경
    public void UpdatePW()
    {
        BackendReturnObject BRO = Backend.BMember.UpdatePassword(PW.text, newPW.text);

        if (BRO.IsSuccess())
        {
            print("동기 방식 비밀번호 변경 완료");
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserPW");
        }
    }
Esempio n. 8
0
    // 동기 방식 쿠폰 사용
    public void useCoupon()
    {
        BackendReturnObject BRO = Backend.Coupon.UseCoupon(coupon.text);

        if (BRO.IsSuccess())
        {
            print("쿠폰 사용 성공");
        }
        else
        {
            Error(BRO.GetErrorCode(), "Coupon");
        }
    }
Esempio n. 9
0
    // 동기 방식 정보 삭제
    public void deleteData()
    {
        BackendReturnObject BRO = Backend.GameInfo.Delete("character", dataIndate);

        if (BRO.IsSuccess())
        {
            print("동기 방식 정보 삭제 성공");
        }
        else
        {
            Error(BRO.GetErrorCode(), "gameData");
        }
    }
Esempio n. 10
0
    // 동기 방식 유저 닉네임 업데이트
    bool UpdateUserNickname(string nickname)
    {
        BackendReturnObject BRO = Backend.BMember.UpdateNickname(nickname);

        if (BRO.IsSuccess())
        {
            return(true);
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserNickname");
            return(false);
        }
    }
Esempio n. 11
0
    // 동기방식 로그인
    public void Login()
    {
        BackendReturnObject BRO = Backend.BMember.CustomLogin(ID.text, PW.text);

        if (BRO.IsSuccess())
        {
            print("동기방식 로그인 성공");
            loginState.text = "로그인 상태 : 로그인";
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserFunc");
        }
    }
Esempio n. 12
0
    // 동기 방식 쪽지 보내기
    public void sendMessage()
    {
        BackendReturnObject BRO = Backend.Social.Message.SendMessage(getGammerIndate(messageNickname.text), messageContents.text);

        if (BRO.IsSuccess())
        {
            print($"{messageNickname.text}님께 동기 방식 쪽지 보내기 성공");
            messageNickname.text = "";
            messageContents.text = "";
        }
        else
        {
            Error(BRO.GetErrorCode(), "Message");
        }
    }
Esempio n. 13
0
    // 동기방식 로그인
    public void Login()
    {
        ButtonOff(0);

        BackendReturnObject BRO = Backend.BMember.CustomLogin(ID.text, PW.text);

        if (BRO.IsSuccess())
        {
            SceneManager.LoadSceneAsync("Ingame");
        }
        else
        {
            Error(BRO.GetErrorCode(), "UserFunc");
        }
    }
Esempio n. 14
0
    // 동기 방식 친구 요청
    public void requestFriend()
    {
        BackendReturnObject BRO = Backend.Social.Friend.RequestFriend(getGammerIndate(FriendNickname.text));

        if (BRO.IsSuccess())
        {
            print($"동기 방식 {FriendNickname.text}님에게 친구요청 성공");
        }
        else
        {
            Error(BRO.GetErrorCode(), "Friend");
        }

        FriendNickname.text = "";
    }
Esempio n. 15
0
    // 동기 방식 친구 수락
    public void AcceptFriend()
    {
        string inDate = EventSystem.current.currentSelectedGameObject.transform.parent.GetChild(2).GetComponent <Text>().text;

        BackendReturnObject BRO = Backend.Social.Friend.AcceptFriend(inDate);

        if (BRO.IsSuccess())
        {
            EventSystem.current.currentSelectedGameObject.transform.parent.gameObject.SetActive(false);
            print("동기 방식 친구 수락 완료");
        }
        else
        {
            Error(BRO.GetErrorCode(), "Friend");
        }
    }
Esempio n. 16
0
    // 동기 방식 정보 삽입
    public void insertData()
    {
        Param param = new Param();

        param.Add("exp", 100);
        param.Add("level", 30);
        param.Add("weapon", weapon);

        BackendReturnObject BRO = Backend.GameInfo.Insert("character", param);

        if (BRO.IsSuccess())
        {
            print("동기 방식 데이터 삽입 성공");
        }
        else
        {
            Error(BRO.GetErrorCode(), "gameData");
        }
    }
Esempio n. 17
0
    public void OnClickGPSLogin()
    {
        BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GPGSGetTokens(), FederationType.Google, "gpgs로 만든계정");

        if (BRO.IsSuccess())
        {
            Debug.Log("구글 토큰으로 뒤끝서버 로그인 성공 - 동기방식");

            switch (BRO.GetStatusCode())
            {
            case "200":
                Debug.Log("로그인 성공 / InDate값을 불러옵니다.");
                BackEndGameInfo.Instance.OnClickPublicContents();
                break;

            case "201":
                Debug.Log("회원가입 성공 / InDate값을 생성합니다.");
                BackEndGameInfo.Instance.OnClickInsertData();
                break;
            }

            LoginScreen.Instance.NextScreen();
        }
        else
        {
            LoginScreen.Instance.OpenLoginFailedPanel();

            switch (BRO.GetStatusCode())
            {
            case "200":
                Debug.Log("이미 회원가입된 회원");
                break;

            case "403":
                Debug.Log("차단된 사용자 입니다. 차단 사유 : " + BRO.GetErrorCode());
                break;

            default:
                Debug.Log("서버 공통 에러 발생" + BRO.GetMessage());
                break;
            }
        }
    }
Esempio n. 18
0
    private void CustomCallback(BackendReturnObject callback)
    {
        Debug.Log(callback);
        if (callback.IsSuccess())
        {
            bro       = callback;
            IsSuccess = true;
        }
        else
        {
            //string errCode = callback.GetErrorCode();
            string msg = string.Empty;

            switch (int.Parse(callback.GetStatusCode()))
            {
            case 401:
                msg = callback.GetMessage().Contains("customId") ? "존재하지 않는 아이디입니다." : "잘못된 비밀번호 입니다.";
                break;

            case 409:
                msg = "중복된 아이디입니다.";
                break;

            case 403:     // 차단
                msg = callback.GetErrorCode();
                break;

            default:
                msg = callback.GetMessage();
                break;
            }

            if (msg.Contains("비밀번호"))
            {
                Dispatcher.Instance.Invoke(() => SetPWGuide(msg));
            }
            else
            {
                Dispatcher.Instance.Invoke(() => SetIdGuide(msg));
            }
        }
    }
Esempio n. 19
0
    // 동기 방식 정보 수정
    public void updateData()
    {
        Param param = new Param();

        param.Add("exp", 110);
        param.Add("level", 31);
        weapon["gun"] = 11;
        param.Add("weapon", weapon);

        BackendReturnObject BRO = Backend.GameInfo.Update("character", dataIndate, param);

        if (BRO.IsSuccess())
        {
            print("동기 방식 정보 수정 성공");
        }
        else
        {
            print(BRO.GetErrorCode());
        }
    }
Esempio n. 20
0
    public void BroChecker
        (string CallingName, BackendReturnObject BRO,
        System.Action SuccessCallback = null, System.Action FailedCallback = null)
    {
        if (BRO.IsSuccess())
        {
            ////Debug.Log("BRO.IsSuccess() == true -> " + CallingName + " 성공: "
            //            + BRO.GetStatusCode() + " // "
            //            + BRO.GetErrorCode() + " // "
            //            + BRO.GetMessage());

            SuccessCallback?.Invoke();
        }
        else
        {
            Debug.Log("BRO.IsSuccess() = false -> " + CallingName + " 실패: "
                      + BRO.GetStatusCode() + " // "
                      + BRO.GetErrorCode() + " // "
                      + BRO.GetMessage());

            FailedCallback?.Invoke();
        }
    }
Esempio n. 21
0
    //구글 토큰으로 뒤끝 회원가입 및 로그인.
    public void GPGSLogin()
    {
        BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "GPGS로 만든 계정.");

        if (BRO.IsSuccess()) //로그인 성공.
        {
            switch (BRO.GetStatusCode())
            {
            case "200":
                Debug.Log("이미 회원가입 완료.");
                break;

            case "201":
                Debug.Log("신규 회원가입 완료.");
                gameObject.GetComponent <BackEndGameInfo>().InsertUserStatDataTable();     //유저 스탯 테이블 생성.
                gameObject.GetComponent <BackEndGameInfo>().InsertUserAssetDataTable();    //유저 자산 테이블 생성.
                gameObject.GetComponent <BackEndGameInfo>().InsertUnitCaptureCountTable(); //유저 유닛 포획 도감 테이블 생성.
                break;
            }
            //Managers.Scene.LoadScene(Define.Scene.Main);
            LoginCanvas.SetActive(false);
            TapCanvs.SetActive(true);
        }
        else //로그인 실패.
        {
            switch (BRO.GetStatusCode()) //실패 사유.
            {
            case "403":
                Debug.Log("차단 유저입니다. 차단 사유 : " + BRO.GetErrorCode());
                break;

            default:
                Debug.Log("서버 공통 에러 발생. " + BRO.GetMessage());
                break;
            }
        }
    }
Esempio n. 22
0
    // 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
    void Update()
    {
        #region 회원가입 및 로그인(비동기)
        if (isSuccess)
        {
            // SaveToken( BackendReturnObject bro ) -> void
            // 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
            BackendReturnObject saveToken = Backend.BMember.SaveToken(bro);

            if (saveToken.IsSuccess())
            {
                print("비동기 로그인 성공");
                loginState.text = "로그인 상태 : 로그인";
            }
            else
            {
                Error(bro.GetErrorCode(), "UserFunc");
            }

            isSuccess = false;
            bro.Clear();
        }
        #endregion
    }
Esempio n. 23
0
    // 동기 방식 정보 읽기
    public void readData()
    {
        BackendReturnObject BRO = Backend.GameInfo.GetPrivateContents("character");

        if (BRO.IsSuccess())
        {
            JsonData jsonData   = BRO.GetReturnValuetoJSON()["rows"][0];
            string   level      = jsonData["level"][0].ToString();
            string   exp        = jsonData["exp"][0].ToString();
            string   gunLevel   = jsonData["weapon"][0]["gun"][0].ToString();
            string   knifeLevel = jsonData["weapon"][0]["knife"][0].ToString();
            string   punchLevel = jsonData["weapon"][0]["punch"][0].ToString();

            dataIndate = jsonData["inDate"][0].ToString();

            print($"Level : {level}    Exp : {exp}");
            print($"Gun : LV.{gunLevel}    Knife : LV.{knifeLevel}    Punch : LV.{punchLevel}");
            print("동기 방식 정보 읽기 완료");
        }
        else
        {
            Error(BRO.GetErrorCode(), "gameData");
        }
    }
Esempio n. 24
0
    public void OnLogin(SignInWithApple.CallbackArgs args)
    {
        BackendReturnObject bro = Backend.BMember.AuthorizeFederation(args.userInfo.idToken, FederationType.Apple, "siwa");

        //Debug.Log(args.userInfo.idToken); <- 애플 로그인 토큰.

        if (bro.IsSuccess())
        {
            //성공 처리
            Debug.Log("APPLE 로그인 성공");
            //Managers.Scene.LoadScene(Define.Scene.Main);
            gameObject.GetComponent <BackEndGameInfo>().InsertUserStatDataTable();     //유저 스탯 테이블 생성.
            gameObject.GetComponent <BackEndGameInfo>().InsertUserAssetDataTable();    //유저 자산 테이블 생성.
            gameObject.GetComponent <BackEndGameInfo>().InsertUnitCaptureCountTable(); //유저 유닛 포획 도감 테이블 생성.
            LoginCanvas.SetActive(false);
            TapCanvs.SetActive(true);
        }
        else
        {
            Debug.LogError("Apple 로그인 실패");
            Debug.LogError(bro.GetErrorCode());
            //실패 처리
        }
    }
Esempio n. 25
0
    private void GoogleAuth(System.Action loginAction)
    {
        if (PlayGamesPlatform.Instance.localUser.authenticated == false)
        {
            Social.localUser.Authenticate(success =>
            {
                if (success == false)
                {
                    Debug.Log("구글 로그인 실패");
                    return;
                }

                /*a
                 * // 로그인이 성공되었습니다.
                 * Debug.Log("GetIdToken - " + PlayGamesPlatform.Instance.GetIdToken());
                 * Debug.Log("Email - " + ((PlayGamesLocalUser)Social.localUser).Email);
                 * Debug.Log("GoogleId - " + Social.localUser.id);
                 * Debug.Log("UserName - " + Social.localUser.userName);
                 * Debug.Log("UserName - " + PlayGamesPlatform.Instance.GetUserDisplayName());*/

                BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs로 만든계정");
                if (BRO.IsSuccess())
                {
                    Debug.Log("구글 로그인 동기화 성공");


                    BackendAsyncClass.BackendAsync(Backend.BMember.GetUserInfo, (callback1) =>
                    {
                        if (callback1.IsSuccess())
                        {
                            JsonData json = callback1.GetReturnValuetoJSON()["row"];

                            if (json["nickname"] != null)
                            {
                                string nickName            = json["nickname"].ToString();
                                UserInfo.instance.nickname = nickName;
                                string indate = json["inDate"].ToString();
                                Debug.Log("로그인 성공 닉네임 : " + nickName);
                                PlayerPrefs.SetString("login", "Google");
                                loginAction();
                                //lobbyLoding.Loading();
                            }
                            else
                            {
                                BackendReturnObject servertime = Backend.Utils.GetServerTime();
                                string time         = servertime.GetReturnValuetoJSON()["utcTime"].ToString();
                                DateTime parsedDate = DateTime.Parse(time);
                                string nickname     = parsedDate.Year.ToString() + parsedDate.Month.ToString() + parsedDate.Day.ToString() + parsedDate.Hour.ToString() + parsedDate.Minute.ToString() + parsedDate.Second.ToString() + UnityEngine.Random.Range(0, 1000).ToString();

                                BackendAsyncClass.BackendAsync(Backend.BMember.CreateNickname, nickname, (callback2) =>
                                {
                                    if (callback2.IsSuccess())
                                    {
                                        Debug.Log("닉네임 만들기 성공");
                                        UserInfo.instance.nickname = nickname;
                                        PlayerPrefs.SetString("login", "Google");
                                        loginAction();
                                    }
                                    else
                                    {
                                        switch (callback2.GetStatusCode())
                                        {
                                        case "400":
                                            Debug.Log("빈 닉네임으로 생성");
                                            Debug.Log("또는 20자 이상의 닉네임");
                                            Debug.Log("닉네임 앞 뒤 공백이 있는 경우");
                                            Debug.Log("에러 메세지" + callback2.GetMessage());
                                            break;

                                        case "409":
                                            Debug.Log("이미 중복된 닉네임");
                                            break;
                                        }
                                    }
                                });
                            }
                        }
                        else
                        {
                            Debug.Log(callback1.GetErrorCode());
                        }
                    });
                }
                else
                {
                    Debug.Log("구글 로그인 동기화 실패");
                    Debug.Log(BRO.GetStatusCode());
                    Debug.Log(BRO.GetMessage());
                    switch (BRO.GetStatusCode())
                    {
                    case "200":
                        Debug.Log("이미 회원가입된 회원");
                        break;

                    case "403":
                        Debug.Log("차단된 사용자 입니다. 차단 사유 : " + BRO.GetErrorCode());
                        break;
                    }
                }
            });
        }
        else
        {
            Debug.Log("bb");
            BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs로 만든계정");
            if (BRO.IsSuccess())
            {
                Debug.Log("구글 로그인 동기화 성공");


                BackendAsyncClass.BackendAsync(Backend.BMember.GetUserInfo, (callback1) =>
                {
                    if (callback1.IsSuccess())
                    {
                        JsonData json = callback1.GetReturnValuetoJSON()["row"];

                        if (json["nickname"] != null)
                        {
                            string nickName = json["nickname"].ToString();
                            string indate   = json["inDate"].ToString();
                            Debug.Log("로그인 성공 닉네임 : " + nickName);
                            PlayerPrefs.SetString("login", "Google");
                            loginAction();
                            //lobbyLoding.Loading();
                        }
                        else
                        {
                            BackendReturnObject servertime = Backend.Utils.GetServerTime();
                            string time         = servertime.GetReturnValuetoJSON()["utcTime"].ToString();
                            DateTime parsedDate = DateTime.Parse(time);
                            string nickname     = parsedDate.Year.ToString() + parsedDate.Month.ToString() + parsedDate.Day.ToString() + parsedDate.Hour.ToString() + parsedDate.Minute.ToString() + parsedDate.Second.ToString() + UnityEngine.Random.Range(0, 1000).ToString();

                            BackendAsyncClass.BackendAsync(Backend.BMember.CreateNickname, nickname, (callback2) =>
                            {
                                if (callback2.IsSuccess())
                                {
                                    Debug.Log("닉네임 만들기 성공");
                                    PlayerPrefs.SetString("login", "Google");
                                    loginAction();
                                }
                                else
                                {
                                    switch (callback2.GetStatusCode())
                                    {
                                    case "400":
                                        Debug.Log("빈 닉네임으로 생성");
                                        Debug.Log("또는 20자 이상의 닉네임");
                                        Debug.Log("닉네임 앞 뒤 공백이 있는 경우");
                                        Debug.Log("에러 메세지" + callback2.GetMessage());
                                        break;

                                    case "409":
                                        Debug.Log("이미 중복된 닉네임");
                                        break;
                                    }
                                }
                            });
                        }
                    }
                    else
                    {
                        Debug.Log(callback1.GetErrorCode());
                    }
                });
            }
            else
            {
                Debug.Log("구글 로그인 동기화 실패");
                Debug.Log(BRO.GetStatusCode());
                Debug.Log(BRO.GetMessage());
                switch (BRO.GetStatusCode())
                {
                case "200":
                    Debug.Log("이미 회원가입된 회원");
                    break;

                case "403":
                    Debug.Log("차단된 사용자 입니다. 차단 사유 : " + BRO.GetErrorCode());
                    break;
                }
            }
        }
    }