docs: def _request_token(self, force=False):
          """
          Request a new auth token
          """
          if self.login_data is None:
              raise RuntimeError("Don't have a token to refresh")
  
          if not force:
              if not self._requires_refresh_token():
                  # no need to refresh as token is valid
                  return True
  
          headers = {
              "Accept": "application/json",
              'Authorization':
                  'Bearer ' + self.login_data['token']['accessToken']
          }
  
          url = self.api_base_url + "account/RefreshToken"
  
          response = requests.get(url, headers=headers, timeout=10)
  
          if response.status_code != 200:
              return False
  
          refresh_data = response.json()
  
          if 'token' not in refresh_data:
              return False
  
          self.login_data['token']['accessToken'] = refresh_data['accessToken']
          self.login_data['token']['issuedOn'] = refresh_data['issuedOn']
          self.login_data['token']['expiresOn'] = refresh_data['expiresOn']
  
          return True