public async Task <IActionResult> Login(LoginDto loginDto) { var user = await _userManager.FindByEmailAsync(loginDto.Email); if (user == null) { return(Unauthorized()); } var result = await _signInManager.CheckPasswordSignInAsync(user, loginDto.Password, false); UserFromDbDto userFromDbDto = await GetAuthenticatedUserDetails(user); if (result.Succeeded) { var generatedToken = await GenerateJwtToken(user); return(Ok(new { token = generatedToken, user = userFromDbDto })); } return(Unauthorized()); }
private async Task <UserFromDbDto> GetAuthenticatedUserDetails(User user) { Person person = await _repo.GetPersonById(user.PersonId); UserFromDbDto userFromDbDto = new UserFromDbDto { Id = user.Id, FirstName = person.FirstName, LastName = person.LastName, PersonId = person.Id }; return(userFromDbDto); }