public async Task <IActionResult> LoginWith2fa(
            bool rememberMe, string returnUrl = null, bool showResendMessage = false
            )
        {
            if (User?.Identity.IsAuthenticated == true)
            {
                return(Redirect(returnUrl ?? m_returnUrlConfiguration.DefaultRedirectUrl));
            }

            // Ensure the user has gone through the username & password screen first
            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 }));
            }

            await m_signInManager.GenerateTwoFactorTokenAsync(user, user.TwoFactorProvider);

            var model = new LoginWith2FaViewModel
            {
                RememberMe        = rememberMe,
                ReturnUrl         = returnUrl,
                Username          = user.UserName,
                ShowResendMessage = showResendMessage
            };

            return(View(model));
        }