Пример #1
0
        private async void LoginButton_Click(object sender, RoutedEventArgs e)
        {
            LoginButton.IsEnabled = false;
            var username = UsernameBox.Text;
            var password = PasswordBox.Password;

            if (username.Length <= 0 || password.Length <= 0)
            {
                LoginButton.IsEnabled = true;
                return;
            }
            var result = await _viewModel.Login(username, password);

            if (result.Status != ResultStatus.Succeeded || result.Value != LoginResult.Success)
            {
                if (result.Value == LoginResult.ChallengeRequired)
                {
                    if (Instagram.Instance.ChallengeInfo != null && !WebviewPopup.IsOpen)
                    {
                        LoginWebview.Navigate(Instagram.Instance.ChallengeInfo.Url);
                        WebviewPopup.IsOpen = true;
                    }
                }
                else
                {
                    await ShowLoginErrorDialog(result.Message);
                }

                LoginButton.IsEnabled = true;
                return;
            }
            Frame.Navigate(typeof(MainPage));
        }
Пример #2
0
        private async void LoginButton_Click(object sender, RoutedEventArgs e)
        {
            if (Instagram.Instance.TwoFactorInfo != null)
            {
                await TwoFactorAuthAsync();

                return;
            }

            if (_loading)
            {
                return;
            }
            DisableButtons();
            try
            {
                var username = UsernameBox.Text;
                var password = PasswordBox.Password;
                if (username.Length <= 0 || password.Length <= 0)
                {
                    return;
                }

                var result = await ViewModel.Login(username, password);

                if (result.Status != ResultStatus.Succeeded || result.Value != LoginResult.Success)
                {
                    switch (result.Value)
                    {
                    case LoginResult.ChallengeRequired:
                        if (Instagram.Instance.ChallengeInfo != null && !WebviewPopup.IsOpen)
                        {
                            LoginWebview.Navigate(Instagram.Instance.ChallengeInfo.Url);
                            WebviewPopup.IsOpen = true;
                        }

                        break;

                    case LoginResult.TwoFactorRequired:
                        await TwoFactorAuthAsync();

                        break;

                    default:
                        await ShowLoginErrorDialog(result.Message);

                        break;
                    }

                    return;
                }

                await TryNavigateToMainPage();
            }
            finally
            {
                EnableButtons();
            }
        }
Пример #3
0
        private async void FbLoginButton_OnClick(object sender, RoutedEventArgs e)
        {
            if (Instagram.Instance.TwoFactorInfo != null)
            {
                await TwoFactorAuthAsync();

                return;
            }
            WebviewPopup.IsOpen = true;
            // https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/#login
            LoginWebview.Navigate(new Uri("https://m.facebook.com/v6.0/dialog/oauth?client_id=124024574287414&scope=email&response_type=token&redirect_uri=https%3A%2F%2Fwww.instagram.com%2Faccounts%2Fsignup%2F"));
        }