public async Task HandleAsync(AuthenticateUserInput input, IAuthenticateOutputHandler <T> output) { var user = await _userRepository.GetByUsernameAsync(input.Username); if (user == null) { output.BadRequest("User does not exists"); } if (!VerifyPasswordHash(input.Password, user.PasswordHash, user.PasswordSalt)) { output.BadRequest("User credentials does not match"); } var token = _tokenService.GenerateJwtToken(user.Username.ToString()); output.Success(new AuthenticateUserOutput(user.Id, user.Username, token)); }