public async Task <IActionResult> ValidateAndSaveSetup( string providerName, string secret, string code, string?returnUrl = null) { MemberIdentityUser?member = await _memberManager.GetCurrentMemberAsync(); var isValid = _twoFactorLoginService.ValidateTwoFactorSetup(providerName, secret, code); if (member is null || isValid == false) { ModelState.AddModelError(nameof(code), "Invalid Code"); return(CurrentUmbracoPage()); } var twoFactorLogin = new TwoFactorLogin { Confirmed = true, Secret = secret, UserOrMemberKey = member.Key, ProviderName = providerName, }; await _twoFactorLoginService.SaveAsync(twoFactorLogin); return(RedirectToLocal(returnUrl)); }
public async Task <bool> ValidateAndSaveAsync(string providerName, Guid userOrMemberKey, string secret, string code) { try { var isValid = ValidateTwoFactorSetup(providerName, secret, code); if (isValid == false) { return(false); } var twoFactorLogin = new TwoFactorLogin { Confirmed = true, Secret = secret, UserOrMemberKey = userOrMemberKey, ProviderName = providerName, }; await SaveAsync(twoFactorLogin); return(true); } catch (Exception ex) { _logger.LogError(ex, "Could not log in with the provided one-time-password"); } return(false); }