public async Task <IActionResult> LoginWith2fa(LoginWith2FaViewModel viewModel)
        {
            if (User?.Identity.IsAuthenticated == true)
            {
                return(Redirect(viewModel.ReturnUrl ?? m_returnUrlConfiguration.DefaultRedirectUrl));
            }

            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var user = await m_signInManager.GetTwoFactorAuthenticationUserAsync();

            if (user == null)
            {
                ModelState.AddModelError(m_localization.Translate("no-valid-2f-session", "LoginWith2FaViewModel"));
                CacheModelState();
                return(RedirectToAction(nameof(Login), new { returnUrl = viewModel.ReturnUrl }));
            }

            var result = await m_signInManager.TwoFactorSignInAsync(
                user, viewModel.TwoFactorCode, viewModel.RememberMe, viewModel.RememberMachine, user.TwoFactorProvider
                );

            if (result.Succeeded)
            {
                m_signInManager.DeleteTwoFactorToken(user, user.TwoFactorProvider);

                return(await SuccessLogin(user.UserName, viewModel.ReturnUrl));
            }

            ModelState.AddModelError(m_localization.Translate("invalid-authenticator-code"));

            return(View(viewModel));
        }