Php LightOpenID validate()在Google应用程序上失败
我正在使用LightOpenID对Google应用程序验证OpenID。我发出了最初的authURL()请求,一切都很好。我调用validate(),但它失败了。通过大量的echo,我追踪到了validate()的最后几行 从validate()中,传递到discover($url)的url是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
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时也遇到了同样的困难。。。这只是最近才开始发生的事情,而现在我回来了,差不多一年后,带着同样的问题。我几乎记得是什么让这个问题在去年消失了——再次尝试谷歌搜索,看看它把我带到了哪里……一些可能的答案: