// 커스텀 계정을 구글 계정으로 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; } } }
// 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("초기화실패"); } }); }
// 커스텀 계정을 구글 계정으로 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; } } }
// 동기방식 회원가입 public void Register() { BackendReturnObject BRO = Backend.BMember.CustomSignUp(ID.text, PW.text); if (BRO.IsSuccess()) { print("동기방식 회원가입 성공"); } else { Error(BRO.GetErrorCode(), "UserFunc"); } }
// 동기 방식 유저 닉네임 업데이트 public void UpdateUserNickname() { BackendReturnObject BRO = Backend.BMember.UpdateNickname(Nickname.text); if (BRO.IsSuccess()) { print("동기 방식 닉네임 업데이트 완료"); } else { Error(BRO.GetErrorCode(), "UserNickname"); } }
// 동기 방식 비밀번호 초기화 public void ResetPW() { BackendReturnObject BRO = Backend.BMember.ResetPassword(ID.text, email.text); if (BRO.IsSuccess()) { print("동기 방식 초기화된 비밀번호 발송 완료"); } else { Error(BRO.GetErrorCode(), "UserPW"); } }
// 동기 방식 비밀번호 변경 public void UpdatePW() { BackendReturnObject BRO = Backend.BMember.UpdatePassword(PW.text, newPW.text); if (BRO.IsSuccess()) { print("동기 방식 비밀번호 변경 완료"); } else { Error(BRO.GetErrorCode(), "UserPW"); } }
// 동기 방식 쿠폰 사용 public void useCoupon() { BackendReturnObject BRO = Backend.Coupon.UseCoupon(coupon.text); if (BRO.IsSuccess()) { print("쿠폰 사용 성공"); } else { Error(BRO.GetErrorCode(), "Coupon"); } }
// 동기 방식 정보 삭제 public void deleteData() { BackendReturnObject BRO = Backend.GameInfo.Delete("character", dataIndate); if (BRO.IsSuccess()) { print("동기 방식 정보 삭제 성공"); } else { Error(BRO.GetErrorCode(), "gameData"); } }
// 동기 방식 유저 닉네임 업데이트 bool UpdateUserNickname(string nickname) { BackendReturnObject BRO = Backend.BMember.UpdateNickname(nickname); if (BRO.IsSuccess()) { return(true); } else { Error(BRO.GetErrorCode(), "UserNickname"); return(false); } }
// 동기방식 로그인 public void Login() { BackendReturnObject BRO = Backend.BMember.CustomLogin(ID.text, PW.text); if (BRO.IsSuccess()) { print("동기방식 로그인 성공"); loginState.text = "로그인 상태 : 로그인"; } else { Error(BRO.GetErrorCode(), "UserFunc"); } }
// 동기 방식 쪽지 보내기 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"); } }
// 동기방식 로그인 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"); } }
// 동기 방식 친구 요청 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 = ""; }
// 동기 방식 친구 수락 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"); } }
// 동기 방식 정보 삽입 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"); } }
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; } } }
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)); } } }
// 동기 방식 정보 수정 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()); } }
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(); } }
//구글 토큰으로 뒤끝 회원가입 및 로그인. 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; } } }
// 비동기 메소드는 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 }
// 동기 방식 정보 읽기 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"); } }
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()); //실패 처리 } }
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; } } } }