PHP-OpenID无法与Yahoo配合使用。

8

我正在尝试使用php-openid库在我的网站上实现OpenID。它包内的基本消费者示例对于Google和Yahoo都不起作用。我在这里找到了Google的解决方案:PHP OpenID中AX的示例用法,但对于Yahoo仍然无效。我该如何让它工作?


没有回应??真的需要帮助。 - hd.
1个回答

9

哇,问题已经解决了!!!

我追踪了函数并找到了问题所在... 在 "try_auth.php" 文件中,我使用了

"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');" 

获取用户电子邮件的提供商。在谷歌中它可以正常工作,因为谷歌忽略了请求的电子邮件地址数量 '2',但是在雅虎中,它会生成[count.email] => 2(在getSignedNS函数中),而雅虎响应中没有count.email的条目。这导致在雅虎的getSignedNS中返回null。

"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');"

为了

"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',1,1, 'email');" 

现在它已经正常工作,可以从两个提供者那里返回我请求的任何内容!!! 笑死我了...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接