예제 #1
0
        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));
        }