コード例 #1
0
        public async Task <IActionResult> ValidateTwoFactor([FromBody] string code)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            try
            {
                var result = await _userSvc.ValidateTwoFactorCodeAsync(code);

                if (!result.IsValid)
                {
                    return(Unauthorized(new { LoginError = result.ResponseMessage.Message, AttemptsRemaining = result.Attempts }));
                }

                var jwtToken = await _authSvc.GenerateNewToken();

                if (jwtToken.ResponseInfo.StatusCode == HttpStatusCode.Unauthorized)
                {
                    return(Unauthorized(new { LoginError = jwtToken.ResponseInfo.Message }));
                }

                if (jwtToken.ResponseInfo.StatusCode == HttpStatusCode.OK)
                {
                    return(Ok(jwtToken));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(Unauthorized(new { LoginError = "You request cannot be completed" }));
        }