0

我试图让 google connect/openid 在 silverstripe 中工作,但我收到了这个错误,我根本不明白它的错误。

[Notice] Trying to get property of non-object
GET /GoogleCallback/GoogleConnect

$ch = curl_init($url);
curl_setopt_array($ch, array(
            CURLOPT_RETURNTRANSFER => true,         
CURLOPT_HTTPHEADER => array( 'Accept: application/xrds+xml')
        ));

    $xml = curl_exec($ch);      
    $xml = simplexml_load_string($xml);
    $discovery = $xml->XRD->Service->URI->__toString();

    curl_close($ch);

    $params = array(
        'openid.mode' => 'checkid_setup',
        'openid.ns' => 'http://specs.openid.net/auth/2.0',

PS:我正在使用这个模块https://github.com/MediaDevils/silverstripe-google-authentication

4

1 回答 1

1

这将有助于告诉我们哪一行确切触发了该错误,但我想它会在

$discovery = $xml->XRD->Service->URI->__toString();

您很可能没有收到预期的 XML 响应(可能有多种原因,因此模块本身可能不是问题的根本原因)。例如,您可以转储 $xml 变量的内容,以便更多地了解您返回的内容。就像是

Debug::Dump($xml);
Debug::Dump(curl_error($ch));

在 curl_exec($ch) 之后;

希望这可以帮助

于 2013-04-06T06:42:39.433 回答