Beispiel #1
0
 public void Logout()
 {
     KeepTitleMusic();
     PersistBackground();
     PersistToDeviceHelper.SetCurrentLogin(null);
     StartCoroutine(LoadDelayed(SceneNames.LOGIN));
 }
Beispiel #2
0
    private IEnumerator UpdateScore()
    {
        var worked = false;

        while (!worked)
        {
            if (m_txtSendStatus != null)
            {
                m_txtSendStatus.enabled = true;
                m_txtSendStatus.text    = "Sending Score to Server...";
            }
            if (m_loadingSpinner != null)
            {
                m_loadingSpinner.SetActive(true);
            }

            using (var request = UnityWebRequest.Get(AuthConfig.ApiServerRoot + "api/update-highscore?score=" + AuthController.CurrentAuthToken.user.bestScore))
            {
                request.SetRequestHeader("Authorization", "Bearer " + AuthController.CurrentAuthToken.authToken);
                yield return(request.SendWebRequest());

                if (request.isNetworkError || request.isHttpError)
                {
                    Debug.Log(request.error);
                }
                else
                {
                    var jwt           = request.downloadHandler.text;
                    var loginResponse = JsonUtility.FromJson <LoginResponse>(jwt);
                    PersistToDeviceHelper.SetCurrentLogin(loginResponse);
                    AuthController.CurrentAuthToken = loginResponse;
                    worked = true;
                }
            }

            if (m_loadingSpinner != null)
            {
                m_loadingSpinner.SetActive(false);
            }
            if (!worked && m_txtSendStatus != null)
            {
                m_txtSendStatus.text = "Failed to update score on server.";
                yield return(new WaitForSeconds(15));
            }
        }

        if (m_txtSendStatus != null)
        {
            m_txtSendStatus.enabled = false;
        }
        StartCoroutine(GetRank());
    }
Beispiel #3
0
    public IEnumerator TryLogIn(string username, string password)
    {
        txtUsername.enabled = false;
        txtPassword.enabled = false;
        btnLogIn.enabled    = false;

        bool loggedIn   = false;
        var  formFields = new Dictionary <string, string>();

        formFields.Add("username", username);
        formFields.Add("password", password);
        using (var request = UnityWebRequest.Post(AuthConfig.ApiServerRoot + "login", formFields))
        {
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                Debug.Log(request.error);
            }
            else
            {
                var jwt           = request.downloadHandler.text;
                var loginResponse = JsonUtility.FromJson <LoginResponse>(jwt);
                PersistToDeviceHelper.SetCurrentLogin(loginResponse);
                CurrentAuthToken = loginResponse;
                loggedIn         = true;
            }
        }

        if (!loggedIn)
        {
            errorText.text      = "Failed to log in. Try again.";
            txtUsername.enabled = true;
            txtPassword.enabled = true;
            btnLogIn.enabled    = true;
            loadingIcon.SetActive(false);
            yield break;
        }

        MoveToTitle();
    }
    private IEnumerator Preload()
    {
        bool loggedIn     = false;
        var  currentLogin = PersistToDeviceHelper.GetCurrentLogin();

        if (currentLogin != null)
        {
            var formFields = new Dictionary <string, string>();
            formFields.Add("authToken", currentLogin.authToken);
            using (var request = UnityWebRequest.Post(AuthConfig.ApiServerRoot + "verify-token", formFields))
            {
                yield return(request.SendWebRequest());

                if (request.isNetworkError || request.isHttpError)
                {
                    Debug.Log(request.error);
                }
                else
                {
                    var jwt           = request.downloadHandler.text;
                    var loginResponse = JsonUtility.FromJson <LoginResponse>(jwt);
                    PersistToDeviceHelper.SetCurrentLogin(loginResponse);
                    AuthController.CurrentAuthToken = loginResponse;
                    loggedIn = true;
                }
            }
        }

        if (!loggedIn)
        {
            //Fire and forget
            UnityWebRequest.Post(AuthConfig.ApiServerRoot + "poke", new Dictionary <string, string>()).SendWebRequest();

            //Navigate to login screen
            MoveToLoginScreen();
            yield break;
        }

        MoveToTitle();
    }