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);
}