public async Task <UserEntity> GetByCredentialsAsync(AuthReadRequest authReadRequest)
        {
            var user =
                await _context.Db.Set <UserEntity>()
                .FindAsync(authReadRequest.Username);

            return(Crypt.PasswordVerify(authReadRequest.Password, user.Password)
                ? user
                : throw new NotFoundException("Invalid username or password"));
        }
        private async Task <UserResponse> GetUser(AuthReadRequest authReadRequest)
        {
            UserEntity user =
                await _userRepository.GetByCredentialsAsync(authReadRequest);

            return(_mapper.Map <UserResponse>(user));

            //return new UserResponse
            //{
            //    UserID = "batman999999",
            //    Name = "batman",
            //    Email = "*****@*****.**",
            //    Username = "******",
            //    Role = "Admin"
            //};
        }
Example #3
0
 public async Task <ActionResult <AuthResponse> > Login([FromBody] AuthReadRequest authReadRequest)
 {
     try
     {
         return(Ok(await _authService.AuthAndGenerateToken(authReadRequest)));
     }
     catch (NotFoundException ex)
     {
         return(NotFound(new { message = ex.Message }));
     }
     catch (Exception e)
     {
         _logger.LogError(e, "Error on Auth - GenerateToken");
         return(BadRequest(e.Message));
     }
 }
        public async Task <AuthResponse> AuthAndGenerateToken(AuthReadRequest authReadRequest)
        {
            UserResponse userResponse =
                await GetUser(authReadRequest);

            string secret =
                _configuration["Authentication:Secret"];

            UserResponseUtil userToUserUtil =
                _mapper.Map <UserResponseUtil>(userResponse);

            string tokenBuilded =
                TokenBuilder.BuildToken(userToUserUtil, secret);

            return(new AuthResponse
            {
                User = userResponse,
                Token = new TokenResponse
                {
                    Token = tokenBuilded
                }
            });
        }