code: def _create_auth(self, username=None, password=None):
          
          if self.sas_token:
              token = self.sas_token() if callable(self.sas_token) else self.sas_token
              try:
                  expiry = int(parse_sas_token(token)['se'])
              except (KeyError, TypeError, IndexError):
                  raise ValueError("Supplied SAS token has no valid expiry value.")
              return authentication.SASTokenAsync(
                  self.auth_uri, self.auth_uri, token,
                  expires_at=expiry,
                  timeout=self.auth_timeout,
                  http_proxy=self.http_proxy)
  
          username = username or self._auth_config['username']
          password = password or self._auth_config['password']
          if "@sas.root" in username:
              return authentication.SASLPlain(
                  self.address.hostname, username, password, http_proxy=self.http_proxy)
          return authentication.SASTokenAsync.from_shared_access_key(
              self.auth_uri, username, password, timeout=self.auth_timeout, http_proxy=self.http_proxy)
docs: Create an ~uamqp.authentication.cbs_auth_async.SASTokenAuthAsync instance to authenticate
          the session.
  
          :param username: The name of the shared access policy.
          :type username: str
          :param password: The shared access key.
          :type password: str