示例#1
0
    /// <summary>
    ///
    /// </summary>
    IEnumerator DoGet(string uri, Action <ULoginResult> callBack, Dictionary <string, string> headers)
    {
        using (UnityWebRequest www = UnityWebRequest.Get(uri))
        {
            if (headers != null)
            {
                foreach (KeyValuePair <string, string> item in headers)
                {
                    www.SetRequestHeader(item.Key, item.Value);
                }
            }
            yield return(www.SendWebRequest());

            ULoginResult result = new ULoginResult(www);
            if (callBack != null)
            {
                callBack.Invoke(result);
            }
        }
    }
示例#2
0
    /// <summary>
    ///
    /// </summary>
    IEnumerator DoPost(string uri, WWWForm postData, Action <ULoginResult> callBack, Dictionary <string, string> headers)
    {
        using (UnityWebRequest www = UnityWebRequest.Post(uri, postData))
        {
            if (headers != null && headers.Count > 0)
            {
                foreach (KeyValuePair <string, string> h in headers)
                {
                    www.SetRequestHeader(h.Key, h.Value);
                }
            }
            yield return(www.SendWebRequest());

            ULoginResult result = new ULoginResult(www);
            if (callBack != null)
            {
                callBack.Invoke(result);
            }
        }
    }
示例#3
0
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    IEnumerator LoginProcess(string user, string pass)
    {
        isRequesting = true;
        LoadingUI.SetActive(true);
        SetLogText("");

        var formData = CreateForm(false, true);

        formData.AddSecureField("name", user);
        formData.AddSecureField("password", pass);
        formData.AddSecureField("authApp", "ulogin");

        var credential = new CustomAuthCredentials()
        {
            UserName           = user,
            UniqueID           = pass,
            authenticationType = AuthenticationType.ULogin,
        };

        using (UnityWebRequest www = UnityWebRequest.Post(bl_LoginProDataBase.Instance.GetUrl(bl_LoginProDataBase.URLType.Login), formData))
        {
            //Wait for server response...
            yield return(www.SendWebRequest());

            var response = new ULoginResult(www);
            if (bl_LoginProDataBase.Instance.FullLogs)
            {
                Debug.Log("Login Result: " + response.RawTextReadable);
            }
            //check if we have some error
            if (!response.isError)
            {
                if (ParseLoginData(response.RawTextReadable))
                {
                    //'Decompile' information from response
                    LoginUserInfo info = new LoginUserInfo();
                    info.ParseFullData(loginUserData);
                    info.IP = currentIP;
#if CLANS
                    info.Clan = new bl_ClanInfo();
                    info.Clan.GetSplitInfo(loginUserData);
                    yield return(StartCoroutine(info.Clan.GetClanBasicInfo()));

                    ClanButton.SetActive(true);
#endif
                    //send information to local database
                    DataBase.OnLogin(info);
                    LocalUserInfo = info;
                    SignIn.OnLogin(info);
                    DataBase.CacheAccessToken = pass;

                    OnAuthenticated(credential, info);
                }
                else
                {
                    //Some error with the server setup.
                    if (bl_LoginProDataBase.Instance.FullLogs)
                    {
                        Debug.Log(response.RawTextReadable);
                    }

                    if (www.responseCode == 401)//wrong credentials
                    {
                        OnWrongCredentials(credential);
                    }
                    else
                    {
                        ErrorType(response.RawTextReadable);
                    }
                }
            }
            else
            {
                if (www.responseCode == 401)//wrong credentials
                {
                    OnWrongCredentials(credential);
                }
                else
                {
                    response.PrintError();
                }
            }
        }
        bl_ULoginLoadingWindow.Instance?.SetActive(false);
        LoadingUI.SetActive(false);
        isRequesting = false;
    }