def METHOD_NAME(self, context, internal_request, get_state=stateID):
    """
    :param get_state: Generates a state to be used in authentication call
    :type get_state: Callable[[str, bytes], str]
    :type context: satosa.context.Context
    :type internal_request: satosa.internal.InternalData
    :rtype satosa.response.Redirect
    """
    oauth_state = get_state(self.config["base_url"], rndstr().encode())
    context.state[self.name] = dict(state=oauth_state)
    request_args = dict(
        client_id=self.config['client_config']['client_id'],
        redirect_uri=self.redirect_url,
        state=oauth_state,
        allow_signup=self.config.get('allow_signup', False))
    scope = ' '.join(self.config['scope'])
    if scope:
        request_args['scope'] = scope
    cis = self.consumer.construct_AuthorizationRequest(
        request_args=request_args)
    return Redirect(cis.request(self.consumer.authorization_endpoint))