Пример #1
0
        public AuthPage()
        {
            InitializeComponent();
            Closing += OnClosing; //Делегат для отлова закрытия окна

            if (File.Exists("Token.json"))
            {
                //string responseData = response.Content.ToString();
                var      jsonString = File.ReadAllText("Token.json");
                JSONauth tempUser   = JsonConvert.DeserializeObject <JSONauth>(jsonString);

                var client = new RestClient($"http://testingwebrtc.herokuapp.com/user/{tempUser.Data.userId}");
                client.Timeout = -1;
                var request = new RestRequest(Method.GET);
                request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                request.AddHeader("x-access-token", $"{tempUser.Token}");
                IRestResponse  response   = client.Execute(request);
                HttpStatusCode statusCode = response.StatusCode;
                if (response.IsSuccessful)
                {
                    JSONauth user = JsonConvert.DeserializeObject <JSONauth>(response.Content.ToString());

                    UserInfo.Email = user.Data.Email;
                    UserInfo.Name  = user.Data.Name;
                    UserInfo.ID    = tempUser.Data.userId;
                    UserInfo.Token = tempUser.Token;
                    UserInfo.Role  = tempUser.Data.Role;
                    MessageBox.Show("Здравствуйте, " + tempUser.Data.Email, "Успешный вход", MessageBoxButton.OK);
                    MainPage mainPage = new MainPage();
                    this.Visibility = Visibility.Hidden;
                    mainPage.Show();
                }
            }
        }
Пример #2
0
 public AppShell(JSONauth temp)
 {
     InitializeComponent();
     RegisterRoutes();
     BindingContext   = this;
     UserInfo.Email   = temp.Data.Email;
     UserInfo.Message = temp.Message;
     UserInfo.Role    = temp.Data.Role;
     UserInfo.Token   = temp.Token;
 }
Пример #3
0
        private void regAcceptButton_Clicked(object sender, EventArgs e)
        {
            if (_mail.Text == "")
            {
                DisplayAlert("Ошибка", "Введите почту", "OK");
            }
            else if (_pass1.Text == "" || _pass2.Text == "")
            {
                DisplayAlert("Ошибка", "Введите пароль", "OK");
            }
            else if (_pass1.Text != _pass2.Text)
            {
                DisplayAlert("Ошибка", "Пароли не совпадают", "OK");
            }
            else
            {
                try
                {
                    var client = new RestClient("https://api-eldoed.herokuapp.com/signup");
                    client.Timeout = -1;
                    var request = new RestRequest(Method.POST);
                    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                    request.AddParameter("email", _mail.Text.ToString());
                    request.AddParameter("password", _pass1.Text.ToString());
                    IRestResponse response = client.Execute(request);

                    string responseData = response.Content.ToString();

                    JSONauth tempUser = JsonConvert.DeserializeObject <JSONauth>(responseData);

                    UserInfo.Email   = tempUser.Data.Email;
                    UserInfo.Message = tempUser.Message;
                    UserInfo.Role    = tempUser.Data.Role;
                    UserInfo.Token   = tempUser.Token;

                    DisplayAlert("Выполнено", "Регистрация прошла успешно", "OK");
                    var page = new AppShell(UserInfo.Email);
                    (Application.Current.MainPage) = page;
                }
                catch
                {
                    DisplayAlert("Что-то пошло не так", "Возможно пользователь с таким E-Mail-ом уже существует", "ОК");
                }
            }
        }
Пример #4
0
        private void authButton_Clicked(object sender, EventArgs e)
        {
            if (_email.Text == "")
            {
                DisplayAlert("Ошибка", "Вы не ввели E-Mail", "OK");
            }
            else
            if (_pass1?.Text == "")
            {
                DisplayAlert("Ошибка", "Вы не ввели пароль", "OK");
            }
            else
            {
                try
                {
                    var client = new RestClient("https://api-eldoed.herokuapp.com/login");
                    client.Timeout = -1;
                    var request = new RestRequest(Method.POST);
                    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                    request.AddParameter("email", _email.Text.ToString());
                    request.AddParameter("password", _pass1.Text.ToString());
                    IRestResponse response = client.Execute(request);

                    string responseData = response.Content.ToString();

                    JSONauth tempUser = JsonConvert.DeserializeObject <JSONauth>(responseData);

                    UserInfo.Email   = tempUser.Data.Email;
                    UserInfo.Message = tempUser.Message;
                    UserInfo.Role    = tempUser.Data.Role;
                    UserInfo.Token   = tempUser.Token;

                    DisplayAlert("Выполнено", "Авторизация прошла успешно", "OK");
                    var page = new AppShell(UserInfo.Email);
                    (Application.Current.MainPage) = page;
                }
                catch
                {
                    DisplayAlert("Ошибка", "Введен неверный логин или пароль", "ОК");
                }
            }
        }
Пример #5
0
        private void AuthButton_Clicked(object sender, RoutedEventArgs e)
        {
            string _Email       = textboxLogin.Text.Trim().ToLower();  //ToLower() - Перевод всех символов строки в нижний регистр
            string _password    = passwordboxPassword.Password.Trim(); //Trim() - Удаление лишних символов
            bool   loginCorrect = false;
            bool   passCorrect  = false;

            //Логика авторизации
            if (_Email.Length < 5)
            {
                textboxLogin.ToolTip     = "Логин слишком короткий.\n(Минимальная длина - 5 символов)"; //ToolTip - Выдаёт подсказку при наведении курсора мыши на объект
                textboxLogin.BorderBrush = Brushes.Red;
            }
            else if (!_Email.Contains("@") || (!_Email.Contains(".")))
            {
                textboxLogin.ToolTip     = "Введены некорректные данные.\n(Возможно отсутствует символ \"@\" или символ \".\")";
                textboxLogin.BorderBrush = Brushes.Red;
            }
            else //Логин верен
            {
                textboxLogin.ToolTip     = _Email;
                textboxLogin.BorderBrush = Brushes.Gray;
                loginCorrect             = true;
            }
            if (_password.Length < 8)
            {
                passwordboxPassword.ToolTip     = "Пароль слишком короткий.\nМинимальная длина пароля - 8 символов.";
                passwordboxPassword.BorderBrush = Brushes.Red;
            }
            else //Пароль верен
            {
                passwordboxPassword.ToolTip     = "";
                passwordboxPassword.BorderBrush = Brushes.Gray;
                passCorrect = true;
            }
            if (loginCorrect && passCorrect)
            {
                try
                {
                    var client = new RestClient("http://testingwebrtc.herokuapp.com/login");
                    client.Timeout = -1;
                    var request = new RestRequest(Method.POST);
                    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                    request.AddParameter("email", _Email.ToString());
                    request.AddParameter("password", _password.ToString());
                    IRestResponse response = client.Execute(request);

                    string responseData = response.Content.ToString();

                    JSONauth tempUser = JsonConvert.DeserializeObject <JSONauth>(responseData);

                    UserInfo.Email = tempUser.Data.Email;
                    //UserInfo.ID = tempUser.ID;
                    UserInfo.Role  = tempUser.Data.Role;
                    UserInfo.Token = tempUser.Token;
                    GuestInfo.Name = "test";
                    UserInfo.Name  = tempUser.Data.Name;
                    MessageBox.Show("Здравствуйте, " + textboxLogin.Text, "Успешный вход", MessageBoxButton.OK);
                    MainPage mainPage = new MainPage();
                    this.Visibility = Visibility.Hidden;
                    mainPage.Show();
                    if (checkboxRemember.IsChecked == true)
                    {
                        UserInfo JSONUser = new UserInfo();

                        File.WriteAllText(@"Token.json", JsonConvert.SerializeObject(tempUser));

                        // serialize JSON directly to a file
                        using (StreamWriter file = File.CreateText(@"Token.json"))
                        {
                            JsonSerializer serializer = new JsonSerializer();
                            serializer.Serialize(file, tempUser);
                        }
                    }
                }
                catch
                {
                    passwordboxPassword.ToolTip     = "Неверный пароль.";
                    passwordboxPassword.BorderBrush = Brushes.Red;
                    //MessageBox.Show("Введен неверный логин или пароль", "Ошибка", MessageBoxButton.OK);
                }
            }
        }
Пример #6
0
        private void RegButton_Clicked(object sender, RoutedEventArgs e)
        {
            string _name        = textboxName.Text.Trim();            //Trim() - Удаление лишних символов
            string _Email       = textboxEmail.Text.Trim().ToLower(); //ToLower() - Перевод всех символов строки в нижний регистр
            string _password1   = passwordbox_1.Password.Trim();
            string _password2   = passwordbox_2.Password.Trim();
            bool   nameCorrect  = false;
            bool   emailCorrect = false;
            bool   ispassEqual  = false;

            //Логика регистрации
            if (_name.Length < 3)
            {
                textboxName.ToolTip     = "Имя слишком короткое.\n(Минимальная длина - 3 символа)";
                textboxName.BorderBrush = Brushes.Red;
            }
            else //Имя верно
            {
                textboxName.ToolTip     = _name;
                textboxName.BorderBrush = Brushes.Gray;
                nameCorrect             = true;
            }
            if (_Email.Length < 5)
            {
                textboxEmail.ToolTip     = "Логин слишком короткий.\n(Минимальная длина - 5 символов)";
                textboxEmail.BorderBrush = Brushes.Red;
            }
            else if (!_Email.Contains("@") || (!_Email.Contains(".")))
            {
                textboxEmail.ToolTip     = "Введены некорректные данные.\n(Возможно отсутствует символ \"@\" или символ \".\")";
                textboxEmail.BorderBrush = Brushes.Red;
            }
            else //Почта верна
            {
                textboxEmail.ToolTip     = _Email;
                textboxEmail.BorderBrush = Brushes.Gray;
                emailCorrect             = true;
            }
            if (_password1 != _password2 || (_password1 == "" && _password2 == ""))
            {
                passwordbox_1.ToolTip     = "Пароли не совпадают.";
                passwordbox_1.BorderBrush = Brushes.Red;
                passwordbox_2.ToolTip     = "Пароли не совпадают.";
                passwordbox_2.BorderBrush = Brushes.Red;
            }
            else if (_password1.Length < 8 || _password2.Length < 8)
            {
                passwordbox_1.ToolTip     = "Пароль слишком короткий.\nМинимальная длина пароля - 8 символов.";
                passwordbox_1.BorderBrush = Brushes.Red;
                passwordbox_2.ToolTip     = "Пароль слишком короткий.\nМинимальная длина пароля - 8 символов.";
                passwordbox_2.BorderBrush = Brushes.Red;
            }
            else //Пароли совпадают
            {
                passwordbox_1.ToolTip     = "Пароли совпадают";
                passwordbox_1.BorderBrush = Brushes.Gray;
                passwordbox_2.ToolTip     = "Пароли совпадают";
                passwordbox_2.BorderBrush = Brushes.Gray;
                ispassEqual = true;
            }
            if (nameCorrect == true && emailCorrect == true && ispassEqual == true)
            {
                if (MessageBox.Show(this, "Создать аккаунт с этими данными?\n\nИмя - " + textboxName.Text + "\nEmail - " + textboxEmail.Text, "Подтверждение", MessageBoxButton.YesNo) != MessageBoxResult.Yes)
                {
                    //pass
                }
                else
                {
                    try
                    {
                        var client = new RestClient("http://testingwebrtc.herokuapp.com/signup");
                        client.Timeout = -1;
                        var request = new RestRequest(Method.POST);
                        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                        request.AddParameter("nickname", _name.ToString());
                        request.AddParameter("email", _Email.ToString());
                        request.AddParameter("password", _password1.ToString());
                        IRestResponse response = client.Execute(request);

                        string responseData = response.Content.ToString();

                        JSONauth tempUser = JsonConvert.DeserializeObject <JSONauth>(responseData);

                        UserInfo.Email = tempUser.Data.Email;
                        //UserInfo.ID = tempUser.ID;
                        UserInfo.Role  = tempUser.Data.Role;
                        UserInfo.Token = tempUser.Token;
                        MessageBox.Show("Регистрация прошла успешно", "Выполнено", MessageBoxButton.OK, MessageBoxImage.Information);
                        AuthPage authPage = new AuthPage();
                        this.Visibility = Visibility.Hidden; //Скрывает текущее окно
                        authPage.Show();
                    }
                    catch
                    {
                        textboxEmail.ToolTip     = "Пользователь с таким E-Mail-ом уже существует";
                        textboxEmail.BorderBrush = Brushes.Red;
                        //MessageBox.Show("Возможно пользователь с таким E-Mail-ом уже существует", "Что-то пошло не так", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                }
            }
        }