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(); } } }
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; }
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-ом уже существует", "ОК"); } } }
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("Ошибка", "Введен неверный логин или пароль", "ОК"); } } }
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); } } }
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); } } } }