Ejemplo n.º 1
0
        public async Task <Response <AuthInfoDTO> > Authenticate(CredentialsDTO dto)
        {
            var user = await _usersRepository.GetByEmail(dto.Email);

            var isPasswordValid = false;

            try
            {
                isPasswordValid = await ValidatePassword(dto.Password, user);
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(new SecurityErrorResponse <AuthInfoDTO>(new []
                {
                    new Error
                    {
                        Code = ErrorCodes.Security.AuthDataInvalid,
                        Message = ErrorMessages.Security.AuthDataInvalid
                    }
                }));
            }

            if (user == null || !isPasswordValid)
            {
                return(new SecurityErrorResponse <AuthInfoDTO>(new []
                {
                    new Error
                    {
                        Code = ErrorCodes.Security.AuthDataInvalid,
                        Message = ErrorMessages.Security.AuthDataInvalid
                    }
                }));
            }

            var tokenDTO = await _tokenFactory.CreateToken(user);

            var userDTO = _mapper.Map <UserModel, UserDTO>(user);

            var result = new AuthInfoDTO
            {
                User  = userDTO,
                Token = tokenDTO
            };

            return(new Response <AuthInfoDTO>
            {
                Data = result
            });
        }
Ejemplo n.º 2
0
        public async Task <Response <AuthInfoDTO> > Authenticate(AuthDTO dto)
        {
            var userEntity = await _userRepository.GetUserByEmail(dto.Email);

            if (userEntity == null || userEntity.Password != dto.Password)
            {
                return(new SecurityErrorResponse <AuthInfoDTO>(new Error[0]));
            }

            var tokenDto = await _tokensFactory.CreateToken(userEntity);

            var userDto  = _mapper.Map <UserModel, UserDTO>(userEntity);
            var authInfo = new AuthInfoDTO
            {
                User  = userDto,
                Token = tokenDto,
            };

            return(new Response <AuthInfoDTO>
            {
                ResultData = authInfo,
            });
        }