Return a Django ``HttpResponseRedirect`` describing the request success.

    The custom authorization endpoint should return the result of this method
    when the user grants the Client's authorization request. The request is
    assumed to have successfully been vetted by the :py:meth:`validate` method.

def make_success_redirect(self):
    """ Return a Django ``HttpResponseRedirect`` describing the request success.

    The custom authorization endpoint should return the result of this method
    when the user grants the Client's authorization request. The request is
    assumed to have successfully been vetted by the :py:meth:`validate` method.
    """
    new_authorization_code = AuthorizationCode.objects.create(
        user=self.user,
        client=self.client,
        redirect_uri=(self.redirect_uri if self.request_redirect_uri else None)
    )
    new_authorization_code.scopes = self.valid_scope_objects
    new_authorization_code.save()

    response_params = {'code': new_authorization_code.value}
    # From http://tools.ietf.org/html/rfc6749#section-4.1.2 :
    #
    #     REQUIRED if the "state" parameter was present in the client
    #     authorization request.  The exact value received from the
    #     client.
    #
    if self.state is not None:
      response_params['state'] = self.state
    return HttpResponseRedirect(
        update_parameters(self.redirect_uri, response_params))