public async Task <IActionResult> GetNewUserData([FromQuery] string userid) { string actResult = string.Empty; JWTLoginModel model = new JWTLoginModel(); Response.StatusCode = StatusCodes.Status500InternalServerError; var user = _userManager.FindByIdAsync(userid).Result; if (user != null) { model.UserId = user.Id; model.email = user.Email; model.firstName = user.FIRST_NAME; model.lastName = user.LAST_NAME; model.password = user.PasswordEncrypt; var _roles = await _userManager.GetRolesAsync(user); model.roles = _roles.ToList(); model.orgUsers = GetOrgUserWithClients(user.Id, "open_waters"); model.isAdmin = GetIsAdmin(model.orgUsers); return(Ok(model)); } // If we got this far, something failed, redisplay form model.errMsg = "Something went wrong!"; return(Ok(model)); }
public async Task <IActionResult> JWTLogin([FromBody] JWTLoginModel model) { _log.InsertT_PRT_SYS_LOG("Info", "JWTLogin Method called."); string actResult = string.Empty; model.isLoggedIn = false; model.isLockedOut = false; model.roles = null; model.errMsg = ""; Response.StatusCode = StatusCodes.Status500InternalServerError; var user = _userManager.FindByNameAsync(model.email).Result; if (user == null) { model.errMsg = "User with email not found!"; _log.InsertT_PRT_SYS_LOG("Error", "User with email not found!"); return(Ok(model)); } model.UserId = user.Id; model.firstName = user.FIRST_NAME; model.lastName = user.LAST_NAME; if (user != null) { if (!_userManager.IsEmailConfirmedAsync(user).Result) { model.errMsg = "Email not confirmed!"; _log.InsertT_PRT_SYS_LOG("Error", "Email not confirmed!"); return(Ok(model)); } } // To enable password failures to trigger account lockout, set lockoutOnFailure: true var result = await _signInManager.PasswordSignInAsync(model.email, Utils.Decrypt(model.password), model.rememberMe, lockoutOnFailure : true); if (result.Succeeded) { //update last login datetime _DbPortal.UpdateT_PRT_USERS_LoginDate(user); //remove Left Menu memorycache for user, so it can be repopulated from db //string CacheKey = "UserMenuData" + user.Id; //_memoryCache.Remove(CacheKey); _logger.LogInformation("User logged in."); _log.InsertT_PRT_SYS_LOG("Info", "User logged in."); model.isLoggedIn = true; var _roles = await _userManager.GetRolesAsync(user); model.roles = _roles.ToList(); model.orgUsers = GetOrgUserWithClients(user.Id, "open_waters");; model.isAdmin = GetIsAdmin(model.orgUsers); Response.StatusCode = StatusCodes.Status200OK; return(Ok(model)); //return RedirectToLocal(returnUrl); } /* * if (result.RequiresTwoFactor) * { * return RedirectToAction(nameof(LoginWith2fa), new { returnUrl, model.RememberMe }); * } */ if (result.IsLockedOut) { _logger.LogWarning("User account locked out."); _log.InsertT_PRT_SYS_LOG("Info", "User account locked out."); model.errMsg = "User account locked out."; //return RedirectToAction(nameof(Lockout)); //return Ok(model); } else { //ModelState.AddModelError(string.Empty, "Invalid login attempt."); //return View(model); model.errMsg = "Invalid login attempt."; _log.InsertT_PRT_SYS_LOG("Error", "Invalid login attempt."); //return Ok(model); } // If we got this far, something failed, redisplay form if (Response.StatusCode != StatusCodes.Status200OK) { model.errMsg = "Something went wrong!"; _log.InsertT_PRT_SYS_LOG("Error", "Something went wrong!"); } return(Ok(model)); }