private void Login() { CoroutineJobLogin j = new CoroutineJobLogin(); j.host = this; j.username = emailField.text; j.password = passwordField.text; j.OnStart += () => { loginErrorText.gameObject.SetActive(false); }; j.OnError += (UnityWebRequest request) => { if (request.responseCode == (long)HttpStatusCode.BadRequest) { loginErrorText.text = "Login failed, please try again"; loginErrorText.gameObject.SetActive(true); } }; j.OnResult += (SDKLoginResult result) => { if (result.error == "none") { PlayerPrefs.SetString("login", j.username); PlayerPrefs.SetString("password", j.password); PlayerPrefs.SetString("token", result.token); m_Sdk.developerToken = result.token; m_ToggleMappingMode?.EnableMappingMode(); if (m_ToggleMappingMode?.MappingUI != null) { m_ToggleMappingMode.MappingUI.GetComponent <MapperBase>().OnLogOut += OnLogOut; } loginErrorText.gameObject.SetActive(false); FadeOut(); OnLogin?.Invoke(); } else if (result.error == "auth") { loginErrorText.text = "Login failed, please try again"; loginErrorText.gameObject.SetActive(true); } }; StartCoroutine(j.RunJob()); }
private IEnumerator Login() { SDKLoginRequest loginRequest = new SDKLoginRequest(); loginRequest.login = emailField.text; loginRequest.password = passwordField.text; loginErrorText.gameObject.SetActive(false); string jsonString = JsonUtility.ToJson(loginRequest); //Debug.Log("jsonString: " + jsonString); byte[] myData = System.Text.Encoding.UTF8.GetBytes(jsonString); using (UnityWebRequest request = UnityWebRequest.Put(string.Format("{0}/{1}", m_server, "fcgi?6"), jsonString)) { request.method = UnityWebRequest.kHttpVerbPOST; request.useHttpContinue = false; request.SetRequestHeader("Content-Type", "application/json"); request.SetRequestHeader("Accept", "application/json"); yield return(request.SendWebRequest()); //Debug.Log("Response code: " + request.responseCode); if (request.isNetworkError || request.isHttpError) { Debug.Log(request.error); if (request.responseCode == (long)HttpStatusCode.BadRequest) { loginErrorText.text = "Login failed, please try again"; loginErrorText.gameObject.SetActive(true); } } else { Debug.Log(request.downloadHandler.text); PlayerPrefs.SetString("login", loginRequest.login); PlayerPrefs.SetString("password", loginRequest.password); SDKLoginResult loginResult = JsonUtility.FromJson <SDKLoginResult>(request.downloadHandler.text); if (loginResult.error == "none") { PlayerPrefs.SetString("token", loginResult.token); m_sdkSettings.developerToken = loginResult.token; m_toggleMappingMode.EnableMappingMode(); if (m_toggleMappingMode.MappingUI != null) { m_toggleMappingMode.MappingUI.GetComponent <Mapper>().OnLogOut += OnLogOut; } loginErrorText.gameObject.SetActive(false); FadeOut(); } else if (loginResult.error == "auth") { loginErrorText.text = "Login failed, please try again"; loginErrorText.gameObject.SetActive(true); } } } }