Login in Action - bondaigames/ASP.NET-Core-Documentation GitHub Wiki
- Add code to Login method in AuthService.cs
public async Task<LoginResponseDto> Login(LoginRequestDto loginRequestDto)
{
var user = _db.ApplicationUsers.FirstOrDefault(u => u.UserName.ToLower() == loginRequestDto.UserName.ToLower());
if (user == null)
{
return new LoginResponseDto();
}
bool isValid = await _userManager.CheckPasswordAsync(user, loginRequestDto.Password);
if (!isValid)
{
return new LoginResponseDto();
}
//if user was found, Generate JWT Token
UserDto userDto = new()
{
Email = user.Email,
ID = user.Id,
Name = user.Name,
PhoneNumber = user.PhoneNumber
};
LoginResponseDto loginResponseDto = new LoginResponseDto()
{
User = userDto,
Token = ""
};
return loginResponseDto;
}
- Add code to AuthAPIController.cs
[HttpPost("login")]
public async Task<IActionResult> Login([FromBody] LoginRequestDto model)
{
var loginResponse = await _authService.Login(model);
if (loginResponse.User == null)
{
_response.IsSuccess = false;
_response.Message = "Username or password is incorrect";
return BadRequest(_response);
}
_response.Result = loginResponse;
return Ok(_response);
}