Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ZendFramework和open ID登录,ZF是否最新?_Php_Zend Framework_Openid - Fatal编程技术网

Php ZendFramework和open ID登录,ZF是否最新?

Php ZendFramework和open ID登录,ZF是否最新?,php,zend-framework,openid,Php,Zend Framework,Openid,我正在尝试将openID登录集成到ZF项目中(使用MVC)。我失败了。 当我跟踪代码时,我发现故障源于: OpenId/Consumer.php(第740行)。这些行尝试分析开放id协议版本 从向开放id提供程序发出的第一个请求开始。 ZF中的regexp希望接收带有链接标记的HTML: /<link[^>]*href=(["\ /]*href=([“\ 而当我看到来自谷歌的回复时, 我明白了,我得到了XML。 我使用的谷歌网址: 我从那里得到的结果是: <?xml v

我正在尝试将openID登录集成到ZF项目中(使用MVC)。我失败了。 当我跟踪代码时,我发现故障源于: OpenId/Consumer.php(第740行)。这些行尝试分析开放id协议版本 从向开放id提供程序发出的第一个请求开始。
ZF中的regexp希望接收带有链接标记的HTML:

/<link[^>]*href=(["\ 
/]*href=([“\
而当我看到来自谷歌的回复时, 我明白了,我得到了XML。 我使用的谷歌网址:

我从那里得到的结果是:

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
  <XRD>
  <Service priority="0">
  <Type>http://specs.openid.net/auth/2.0/server</Type>
  <Type>http://openid.net/srv/ax/1.0</Type>

  <URI>https://www.google.com/accounts/o8/ud</URI>
  </Service>
  </XRD>
</xrds:XRDS>

http://specs.openid.net/auth/2.0/server
http://openid.net/srv/ax/1.0
https://www.google.com/accounts/o8/ud

我是否使用了指向google的错误链接?

查看中的源代码,目前似乎不支持基于XRDS的发现:

/* TODO: OpenID 2.0 (7.3) XRI and Yadis discovery */

ZF目前支持基于HTML的文档,Google返回一个XDRS文档,其中包含端点地址和他们的OpenId输入URL。

我找到了一个ZF的补丁,可以完成大部分功能

谢谢。对于我第一次尝试使用OpenId时,我习惯于Google URL,认为它可以开箱即用。现在我可以停止撞头了。