public function get_authorize_link(
        $response_type,
        $redirect_uri,
        $connection = null,
        $state = null,
        array $additional_params = []
    )
    {
        $additional_params['response_type'] = $response_type;
        $additional_params['redirect_uri']  = $redirect_uri;
        $additional_params['client_id']     = $this->client_id;

        if ($connection !== null) {
            $additional_params['connection'] = $connection;
        }

        if ($state !== null) {
            $additional_params['state'] = $state;
        }

        return sprintf(
            'https://%s/authorize?%s',
            $this->domain,
            Psr7\build_query($additional_params)
        );
    }