public async Task <IActionResult> Login([FromBody] UserViewModel userViewModel) { if (ModelState.IsValid) { var user = await _userManager.FindByNameAsync(userViewModel.Username); if (user == null) { return(Unauthorized()); } var userResult = await _userManager.CheckPasswordAsync(user, userViewModel.Password); if (userResult) { var tokenString = _tokenProvider.GenerateJwt(); return(Ok(new { token = tokenString })); } return(NotFound("invalid password")); } return(BadRequest(ModelState)); }