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

def authenticate(self, *, scopes, **kwargs):
        """ 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
        """
        kwargs.setdefault('token_backend', self.con.token_backend)
        return oauth_authentication_flow(*self.con.auth, scopes=scopes,
                                         protocol=self.protocol, **kwargs)