Exemplo n.º 1
0
        private async Task LogIn()
        {
            if (string.IsNullOrWhiteSpace(CodeCell.Entry.Text))
            {
                await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired,
                                                                                  AppResources.VerificationCode), AppResources.Ok);

                return;
            }

            var request = new TokenTwoFactorRequest
            {
                Code     = CodeCell.Entry.Text.Replace(" ", ""),
                Provider = "Authenticator",
                Device   = new DeviceRequest(_appIdService, _deviceInfoService)
            };

            _userDialogs.ShowLoading(AppResources.ValidatingCode, MaskType.Black);
            var response = await _authService.TokenTwoFactorPostAsync(request);

            _userDialogs.HideLoading();
            if (!response.Succeeded)
            {
                await DisplayAlert(AppResources.AnErrorHasOccurred, response.Errors.FirstOrDefault()?.Message, AppResources.Ok);

                return;
            }

            _authService.Token  = response.Result.Token;
            _authService.UserId = response.Result.Profile.Id;
            _authService.Email  = response.Result.Profile.Email;

            var task = Task.Run(async() => await _syncService.FullSyncAsync());

            Application.Current.MainPage = new MainPage();
        }
Exemplo n.º 2
0
        public virtual async Task <ApiResult <TokenResponse> > PostTokenTwoFactorAsync(TokenTwoFactorRequest requestObj)
        {
            if (!Connectivity.IsConnected)
            {
                return(HandledNotConnected <TokenResponse>());
            }

            using (var client = HttpService.Client)
            {
                var requestMessage = new TokenHttpRequestMessage(requestObj)
                {
                    Method     = HttpMethod.Post,
                    RequestUri = new Uri(client.BaseAddress, string.Concat(ApiRoute, "/token/two-factor")),
                };

                try
                {
                    var response = await client.SendAsync(requestMessage).ConfigureAwait(false);

                    if (!response.IsSuccessStatusCode)
                    {
                        return(await HandleErrorAsync <TokenResponse>(response).ConfigureAwait(false));
                    }

                    var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                    var responseObj = JsonConvert.DeserializeObject <TokenResponse>(responseContent);
                    return(ApiResult <TokenResponse> .Success(responseObj, response.StatusCode));
                }
                catch (WebException)
                {
                    return(HandledWebException <TokenResponse>());
                }
            }
        }
Exemplo n.º 3
0
 public async Task <ApiResult <TokenResponse> > TokenTwoFactorPostAsync(TokenTwoFactorRequest request)
 {
     // TODO: move more logic in here
     return(await _authApiRepository.PostTokenTwoFactorAsync(request));
 }