我正在尝试将openID登录集成到ZF项目中(使用MVC)。我有失败的经历。当我跟踪代码时,我发现失败来自于: OpenId/Consumer.php (第~740行)。这些行尝试分析从第一个请求到开放id提供者的开放id协议版本。
ZF中的regexp期望接收带有链接标记的HTML:
/<link[^>]*href=(["\
而当我查看响应时,例如来自google的响应,我看到我得到了XML。我使用的谷歌网址:https://www.google.com/accounts/o8/id
我从那里得到的结果是:
<?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>
我是不是用错了谷歌的链接?
发布于 2011-09-09 20:51:08
我已经为ZF找到了一个补丁,它可以完成http://ak33m.com/?p=71的大部分工作
发布于 2009-05-15 12:27:31
查看ZF trunk中的源代码,目前似乎不支持基于XRDS的发现:
/* TODO: OpenID 2.0 (7.3) XRI and Yadis discovery */
ZF目前支持基于超文本标记语言的文档,谷歌返回一个XDRS文档,文档上有端点地址和他们的OpenId入口URL。
https://stackoverflow.com/questions/858483
复制相似问题