'Prepare the authorization request.
This is the first step in many OAuth flows in which the user is
redirected to a certain authorization URL. This method adds
required parameters to the authorization URL.
:param authorization_url: Provider authorization endpoint URL.
:param state: CSRF protection string. Will be automatically created if
not provided. The generated state is available via the ``state``
attribute. Clients should verify that the state is unchanged and
present in the authorization response. This verification is done
automatically if using the ``authorization_response`` parameter
with ``prepare_token_request``.
:param redirect_url: Redirect URL to which the user will be returned
after authorization. Must be provided unless previously setup with
the provider. If provided then it must also be provided in the
token request.
:param kwargs: Additional parameters to included in the request.
:returns: The prepared request tuple with (url, headers, body).'

def prepare_authorization_request(self, authorization_url, state=None, redirect_url=None, scope=None, **kwargs):

    if (not is_secure_transport(authorization_url)):
        raise InsecureTransportError()
    self.state = (state or self.state_generator())
    self.redirect_url = (redirect_url or self.redirect_url)
    self.scope = (scope or self.scope)
    auth_url = self.prepare_request_uri(authorization_url, redirect_uri=self.redirect_url, scope=self.scope, state=self.state, **kwargs)
    return (auth_url, FORM_ENC_HEADERS, u'')
