//----------------------------------------ACCOUNT (We send OnFailed too to keep the possibility to identify an error on the user-side. We could upgrade this part) public void StartLogin() { if (!PlayerPrefs.HasKey(KEY_ID) || !PlayerPrefs.HasKey(KEY_PWD) || !ProfileHolder.IsEmail(PlayerPrefs.GetString(KEY_ID)) || !IsRegisteredEmail) { LoginAnonymously(); } else { SignIn(PlayerPrefs.GetString(KEY_ID), PlayerPrefs.GetString(KEY_PWD)); } }
private void OnRecover() { if (!ProfileHolder.IsEmail(emailInput.text)) { HintItIsNotEmail(); Debug.LogWarning("Need a real email to recover"); return; } HintCantRecoveredPassword(); //TO DELETE IF WE USE A REAL API KEY (registered with no 2FA and with a debit card) CloudManager.Instance.Profile.ResetPassword(emailInput.text, OnRecovered, OnFailedRecovered); }
//SignIn Results (For security, I think it's useless to have a splitted behaviour to know if this email is registered. But I would like to show that it's possible to) private void OnSuccessSignIn(string _id, string _pwd) { if (ProfileHolder.IsEmail(_id)) { PlayerPrefs.SetInt(ProfileHolder.KEY_NETWORK, 1); } else { PlayerPrefs.SetInt(ProfileHolder.KEY_NETWORK, 0); } PlayerPrefs.SetString(ProfileHolder.KEY_ID, _id); PlayerPrefs.SetString(ProfileHolder.KEY_PWD, _pwd); PlayerPrefs.Save(); cachedMail = _id; cachedPass = _pwd; ChangeState(WindowState.Connected); CloseWindow(); }
private void OnValidation() { if (!ProfileHolder.IsEmail(emailInput.text)) { HintItIsNotEmail(); ShakeCourriel(); return; } switch (currentState) { case WindowState.SignIn: if (passwordInput.text != "" && ProfileHolder.IsPassword(passwordInput.text)) { CloudManager.Instance.Profile.SignIn(emailInput.text, passwordInput.text, OnSuccessSignIn, FailedSignIn); } else { CloudManager.Instance.Profile.SignIn(emailInput.text, PlayerPrefs.GetString(ProfileHolder.KEY_PWD), OnSuccessSignIn, FailedSignIn); } //Automatic accound creation (I don't want this but it's possible like this) //CloudManager.Instance.Profile.LoginWithEmail(emailInput.text, passwordInput.text, OnFinishedMailAndPasswordEditing, OnFailedSignIn); break; case WindowState.SignUp: if (passwordInput.text != cachedPass) //Has changed his password { if (ProfileHolder.IsPassword(passwordInput.text)) { CloudManager.Instance.Profile.SignUp(emailInput.text, passwordInput.text, OnFinishedMailAndPasswordEditing, OnNoRegisteredEmail); } else { HintItIsNotAPassword(); ShakePadlock(); } } else //Has not changed his password in forms { if (ProfileHolder.IsPassword(PlayerPrefs.GetString(ProfileHolder.KEY_PWD))) { CloudManager.Instance.Profile.SignUp(emailInput.text, PlayerPrefs.GetString(ProfileHolder.KEY_PWD), OnFinishedMailAndPasswordEditing, OnAlreadyRegisteredEmail); } else { ShakePadlock(); Debug.LogError("The user has changed is password not properly ??"); } } break; default: //Connected if (emailInput.text != cachedMail) { CloudManager.Instance.Profile.ChangeEmail(emailInput.text, OnFinishedMailEditingAndChangeState); } if (passwordInput.text != PlayerPrefs.GetString(ProfileHolder.KEY_PWD) && ProfileHolder.IsPassword(passwordInput.text)) { CloudManager.Instance.Profile.ChangePassword(passwordInput.text, OnFinishedPasswordEditingAndChangeState); } break; } }