def validate_authorization_request(self):
    'The client constructs the request URI by adding the following\n        parameters to the query component of the authorization endpoint URI\n        using the "application/x-www-form-urlencoded" format.\n        Per `Section 4.2.1`_.\n\n        response_type\n             REQUIRED.  Value MUST be set to "token".\n\n        client_id\n             REQUIRED.  The client identifier as described in Section 2.2.\n\n        redirect_uri\n             OPTIONAL.  As described in Section 3.1.2.\n\n        scope\n             OPTIONAL.  The scope of the access request as described by\n             Section 3.3.\n\n        state\n             RECOMMENDED.  An opaque value used by the client to maintain\n             state between the request and callback.  The authorization\n             server includes this value when redirecting the user-agent back\n             to the client.  The parameter SHOULD be used for preventing\n             cross-site request forgery as described in Section 10.12.\n\n        The client directs the resource owner to the constructed URI using an\n        HTTP redirection response, or by other means available to it via the\n        user-agent.\n\n        For example, the client directs the user-agent to make the following\n        HTTP request using TLS:\n\n        .. code-block:: http\n\n            GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz\n            &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1\n            Host: server.example.com\n\n        .. _`Section 4.2.1`: https://tools.ietf.org/html/rfc6749#section-4.2.1\n        '
    client = self.authenticate_token_endpoint_client()
    log.debug('Validate authorization request of %r', client)
    redirect_uri = self.validate_authorization_redirect_uri(self.request, client)
    response_type = self.request.response_type
    if (not client.check_response_type(response_type)):
        raise UnauthorizedClientError('The client is not authorized to use "response_type={}"'.format(response_type), state=self.request.state, redirect_uri=redirect_uri, redirect_fragment=True)
    try:
        self.request.client = client
        self.validate_requested_scope()
        self.execute_hook('after_validate_authorization_request')
    except OAuth2Error as error:
        error.redirect_uri = redirect_uri
        error.redirect_fragment = True
        raise error
    return redirect_uri
The client constructs the request URI by adding the following
parameters to the query component of the authorization endpoint URI
using the "application/x-www-form-urlencoded" format.
Per `Section 4.2.1`_.

response_type
     REQUIRED.  Value MUST be set to "token".

client_id
     REQUIRED.  The client identifier as described in Section 2.2.

redirect_uri
     OPTIONAL.  As described in Section 3.1.2.

scope
     OPTIONAL.  The scope of the access request as described by
     Section 3.3.

state
     RECOMMENDED.  An opaque value used by the client to maintain
     state between the request and callback.  The authorization
     server includes this value when redirecting the user-agent back
     to the client.  The parameter SHOULD be used for preventing
     cross-site request forgery as described in Section 10.12.

The client directs the resource owner to the constructed URI using an
HTTP redirection response, or by other means available to it via the
user-agent.

For example, the client directs the user-agent to make the following
HTTP request using TLS:

.. code-block:: http

    GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz
    &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
    Host: server.example.com

.. _`Section 4.2.1`: https://tools.ietf.org/html/rfc6749#section-4.2.1
def validate_authorization_request(self):
    'The client constructs the request URI by adding the following\n        parameters to the query component of the authorization endpoint URI\n        using the "application/x-www-form-urlencoded" format.\n        Per `Section 4.2.1`_.\n\n        response_type\n             REQUIRED.  Value MUST be set to "token".\n\n        client_id\n             REQUIRED.  The client identifier as described in Section 2.2.\n\n        redirect_uri\n             OPTIONAL.  As described in Section 3.1.2.\n\n        scope\n             OPTIONAL.  The scope of the access request as described by\n             Section 3.3.\n\n        state\n             RECOMMENDED.  An opaque value used by the client to maintain\n             state between the request and callback.  The authorization\n             server includes this value when redirecting the user-agent back\n             to the client.  The parameter SHOULD be used for preventing\n             cross-site request forgery as described in Section 10.12.\n\n        The client directs the resource owner to the constructed URI using an\n        HTTP redirection response, or by other means available to it via the\n        user-agent.\n\n        For example, the client directs the user-agent to make the following\n        HTTP request using TLS:\n\n        .. code-block:: http\n\n            GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz\n            &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1\n            Host: server.example.com\n\n        .. _`Section 4.2.1`: https://tools.ietf.org/html/rfc6749#section-4.2.1\n        '
    client = self.authenticate_token_endpoint_client()
    log.debug('Validate authorization request of %r', client)
    redirect_uri = self.validate_authorization_redirect_uri(self.request, client)
    response_type = self.request.response_type
    if (not client.check_response_type(response_type)):
        raise UnauthorizedClientError('The client is not authorized to use "response_type={}"'.format(response_type), state=self.request.state, redirect_uri=redirect_uri, redirect_fragment=True)
    try:
        self.request.client = client
        self.validate_requested_scope()
        self.execute_hook('after_validate_authorization_request')
    except OAuth2Error as error:
        error.redirect_uri = redirect_uri
        error.redirect_fragment = True
        raise error
    return redirect_uri