code: def authenticate(self, *, scopes, **kwargs):
          
          kwargs.setdefault('token_backend', self.con.token_backend)
          return oauth_authentication_flow(*self.con.auth, scopes=scopes,
                                           protocol=self.protocol, **kwargs)
docs: Performs the oauth authentication flow resulting in a stored token
          It uses the credentials passed on instantiation
  
          :param list[str] scopes: list of protocol user scopes to be converted
           by the protocol or scope helpers
          :param kwargs: other configurations to be passed to the
           Connection instance
          :return: Success / Failure
          :rtype: bool