public IEnumerator OnNewGuest(VOGControllerAuth ctrl, AvatarGender gender) { try { ctrl.DisableInput(); //Create guest ApiCall call = VostopiaClient.Authentication.BeginSignInGuest(gender); IEnumerator e = call.Wait(); while (e.MoveNext()) { yield return e.Current; } if (!VostopiaClient.Authentication.EndSignIn(call)) { ctrl.ShowMessageDialog("Uh-oh", "There was an error creating a guest account for you. Please try again.", () => { }); yield break; } //Store authentication key if (call.ResponseData["authKey"] != null) { string authKey = (string)call.ResponseData["authKey"]; ctrl.StoreGuestAuthenticationKey(authKey); } //Continue to auth completed screen ctrl.AuthenticationCompleted(); } finally { ctrl.EnableInput(); } }
public IEnumerator OnAuthenticate(VOGControllerAuth ctrl) { try { ctrl.DisableInput(); if (CurrentPasswordData == null || CurrentPasswordData.User == null) { ctrl.ShowMessageDialog("Doh!", "An error occurred during authentication. Please try again", () => { }); yield break; } VostopiaUser user = CurrentPasswordData.User; //Try to authenticate user ApiCall call = VostopiaClient.Authentication.BeginSignIn(user.Username, Password, true); IEnumerator e = call.Wait(); while (e.MoveNext()) { yield return e.Current; } if (!VostopiaClient.Authentication.EndSignIn(call)) { ctrl.ShowMessageDialog("Uh-oh", "The password you entered doesn't match our records. Please try again or use the 'Send me a new password' option below.", () => { }); yield break; } //Store authentication key if (call.ResponseData["authKey"] != null) { ctrl.StoreUserAuthenticationKey(user, (string)call.ResponseData["authKey"]); } ctrl.AuthenticationCompleted(); } finally { ctrl.EnableInput(); } }
public IEnumerator OnSignIn(VOGControllerAuth ctrl) { try { ctrl.DisableInput(); var authSelectData = new VOGStateAuthSelect.AuthSelectData(); authSelectData.EnableCancel = false; //Make sure we have UserAuth object if (UserAuth == null || string.IsNullOrEmpty(UserAuth.AuthKey)) { ctrl.ShowMessageDialog("Doh!", "An error occurred during authentication. Please try again", () => { ctrl.StartTransition(AuthSelectorScreen, authSelectData); }); yield break; } //Try to authenticate user ApiCall call = VostopiaClient.Authentication.BeginSignInAuthKey(UserAuth.AuthKey); IEnumerator e = call.Wait(); while (e.MoveNext()) { yield return e.Current; } if (!VostopiaClient.Authentication.EndSignIn(call)) { ctrl.ShowMessageDialog("Session Expired", "Your authentication session has expired. Please sign in again.", () => { ctrl.StartTransition(AuthSelectorScreen, authSelectData); }); yield break; } //Continue to auth completed screen ctrl.AuthenticationCompleted(); } finally { ctrl.EnableInput(); } }
public IEnumerator OnNewUser(VOGControllerAuth ctrl, AvatarGender gender) { try { ctrl.DisableInput(); //Create user ApiCall call = VostopiaClient.Authentication.BeginRegister(Email, KeepInTouch, gender); IEnumerator e = call.Wait(); while (e.MoveNext()) { yield return e.Current; } var registerResult = VostopiaClient.Authentication.EndRegister(call); if (registerResult != VostopiaAuthenticationClient.RegisterResult.SUCCESS) { Debug.LogWarning("Error creating new user, " + registerResult); string msg = ""; if (registerResult == VostopiaAuthenticationClient.RegisterResult.USER_ALREADY_EXISTS) { msg = "That email address is already in use! Please try another."; } else if (registerResult == VostopiaAuthenticationClient.RegisterResult.INVALID_EMAIL) { msg = "That email address doesn't make sense to us =( Please try again."; } else { msg = "Something went wrong while creating your account =( Please try again."; } //Show message box and return to previous screen ctrl.ShowMessageDialog("Uh-oh", msg, () => { ctrl.StartBackTransition(); }); yield break; } //Store authentication key if (call.ResponseData["authKey"] != null) { string authKey = (string)call.ResponseData["authKey"]; ctrl.StoreGuestAuthenticationKey(authKey); } //Continue to auth completed screen ctrl.AuthenticationCompleted(); } finally { ctrl.EnableInput(); } }