public async Task <IActionResult> AddTwoFactorEmailAuthentication(AddTwoFactorEmailAuthenticationRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Index)));
            }

            Result <IEnumerable <string> > verifyResult = await _twoFactorAuthService.VerifyEmailTwoFactorCode(GetUserId(), request);

            if (verifyResult.Failure)
            {
                SaveTempData(EMAIL_STATUS_ALERT_TEMP_DATA_KEY, StatusAlertViewExtension.Get(verifyResult));

                return(RedirectToAction(nameof(AddTwoFactorEmailAuthentication)));
            }

            SaveTempData(RECOVERY_CODES_KEY, verifyResult.Value);
            return(RedirectToAction(nameof(RecoveryCodesView)));
        }
Ejemplo n.º 2
0
        public Task <Result <IEnumerable <string> > > VerifyEmailTwoFactorCode(string userId, AddTwoFactorEmailAuthenticationRequest request)
        {
            ValidationResult validationResult = _addEmailTwoFactorValidator.Validate(request);

            if (!validationResult.IsValid)
            {
                _logger.LogError($"Verification failed.");
                return(Task.FromResult(Result.Fail <IEnumerable <string> >(ResultUtils.ToResultError(validationResult.Errors))));
            }

            return(AddTwoFactorAuthentication(userId, TwoFactorAuthenticationType.Email, request.Token));
        }