我正在尝试使用php-openid库在我的网站中实现openID。 其包中的基本消费者示例不适用于Google和Yahoo。 我在这里找到了Google解决方案: Example usage of AX in PHP OpenID 但它仍不适用于雅虎! 。 我怎么能让它有效?
答案 0 :(得分:9)
哇现在解决了!!!!!
我追踪了这些功能,发现了问题。那就是.... 在我使用的“try_auth.php”文件中
"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');"
从提供商处获取用户电子邮件。它适用于谷歌,因为谷歌忽略'2'(请求的电子邮件地址的数量),但在雅虎!它生成[count.email] => 2为它(在getSignedNS函数中)和在Yahoo响应中没有count.email的条目。它导致在Yahoo的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');"
现在它工作正常,并返回我们要求的两个提供商!!!
...洛尔