def __get_header_with_auth(self):
        """
        This private method returns the HTTP heder filled with the Authorization information with the user token.
        The token validity is monitored whenever this function is called, so according to the swagger page of TheTVDB
        (https://api.thetvdb.com/swagger) the tokens are valid for 24 hours, therefore if a token is generated for over
        23 hours already, this function will also perform a token refresh using TheTVDB refresh_token API. If over 24
        hours have passed since the token generation, a login is performed to generate a new one, instead.

        :return: A python dictionary representing the HTTP header to be used in TheTVDB API calls.
        """
        auth_header = self.__get_header()
        auth_header['Authorization'] = 'Bearer %s' % self.__token
        token_renew_time = self.__auth_time + timedelta(seconds=self.TOKEN_DURATION_SECONDS)

        if datetime.now() > token_renew_time:
            token_max_time = self.__auth_time + timedelta(seconds=self.TOKEN_MAX_DURATION)
            if datetime.now() < token_max_time:
                self.__refresh_token()
            else:
                self.login()

            auth_header['Authorization'] = 'Bearer %s' % self.__token

        return auth_header