Php LightOpenID validate()在Google应用程序上失败

Php LightOpenID validate()在Google应用程序上失败,php,openid,google-apps,lightopenid,Php,Openid,Google Apps,Lightopenid,我正在使用LightOpenID对Google应用程序验证OpenID。我发出了最初的authURL()请求,一切都很好。我调用validate(),但它失败了。通过大量的echo,我追踪到了validate()的最后几行 从validate()中,传递到discover($url)的url是https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com/openid?id=11765028262121597341 di

我正在使用LightOpenID对Google应用程序验证OpenID。我发出了最初的authURL()请求,一切都很好。我调用validate(),但它失败了。通过大量的echo,我追踪到了validate()的最后几行

从validate()中,传递到discover($url)的url是
https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com/openid?id=11765028262121597341

discover()首先检查不存在的XRD位置。discover()接下来检查内容类型是否为xrds+xml,这是真的。discover()检查服务(.*)/Service,这是真的。这是服务的片段,/Service

<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/signon</Type> 

<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/a/<my domain>.com/o8/ud?be=o8</URI>
</Service>

http://specs.openid.net/auth/2.0/signon 
http://openid.net/srv/ax/1.0
http://specs.openid.net/extensions/ui/1.0/mode/popup
http://specs.openid.net/extensions/ui/1.0/icon
http://specs.openid.net/extensions/pape/1.0
https://www.google.com/a/.com/o8/ud?be=o8
discover()发现我们正在使用OpenID2,并将URI字段提取到$server变量中。discover()继续提取CanonicalID,发现Google支持AX而不是SREG。最后,discover()返回$server作为
https://www.google.com/a/my-domain.com/o8/ud?be=o8

validate()将继续清理数据[]中的每个字段,具体取决于是否使用magic_引号。它将openid.mode设置为“check_authentication”,请求discover($url)返回的$server和“/is_valid:true”的preg。这是最后一场预赛失败了。$server url不返回验证,而是说:“您请求的页面无效。”

我要寻找的答案是谷歌应用验证的正确url。紧接着的第二个问题就是url应该是什么样子,我会仔细查看Google应用程序返回的信息,看看我是否有类似的内容

补充:不确定这是否重要,但我确实有一个/.well/host元文件。内容如下:
链接:;rel=“descripbedbyhttp://reltype.google.com/openid/xrd-op"; type=“application/xrds+xml”

如果您需要更多代码或数据,请告诉我

谢谢,
Eric B.

确保您的服务器上安装了PHP curl扩展。我们最近在生产中遇到了完全相同的症状,这与服务器资源调配问题有关

如果您正在Debian上运行应用程序,只需使用:

apt-get install php5-curl

我在使用谷歌应用程序和LightOpenId时也遇到了同样的困难。。。这只是最近才开始发生的事情,而现在我回来了,差不多一年后,带着同样的问题。我几乎记得是什么让这个问题在去年消失了——再次尝试谷歌搜索,看看它把我带到了哪里……一些可能的答案: