如何使用 Zend OpenID 实现基于直接身份的 OpenID 身份验证
我正在使用Zend框架和 http://code.google.com/p/openid-selector/ 的openid选择器 - 但是我发现我无法使用Google和Yahoo等网站登录,因为它们使用基于身份的直接登录系统,其中一个只是重定向到一个url,而不是输入他们自己的唯一URL进行身份验证。
我已经检查了许多选项和黑客,但它们似乎都不起作用。顺便说一句,我如何让它在这里工作 - 它是如何在堆栈溢出中实现的?我真的可以使用这里所有的帮助。
编辑
这里的问题是,从我注意到的是,Zend OpenID类不支持OpenID 2.0,问题是典型的开放ID提供器会给你一个唯一的url,例如 your-name.openid-providor.com 或 openid-providor.com/your-name 而Zend OpenId类只是解析该URL,然后将您重定向到提供者网站,在身份验证后您将被重定向回去。
在Yahoo和Google的情况下 - 您没有输入唯一的URL,而是被重定向到提供者登录站点,并且在登录和身份验证后您将被重定向回去 - 所以基本上,zend_openID对象在解析时会告诉提供者是谁,它无法从一般URL本身中分辨出来。就像当你点击谷歌链接时,它会将你重定向到 https://www.google.com/accounts/o8/id
这里更多的是zend openid对象的问题,并且在zend相关论坛上没有任何帮助 - 所以我想知道是否有人已经破解或可以对类进行更改以完成此操作。很抱歉,如果我错过了一些东西,但我有点新手,用开放的ID编程,刚刚开始弄湿我的脚。
感谢您的跟进 - 我确实检查了RPX一段时间,他们确实有一个php类,但我无法检查它,而且我真的只想现在让代码选择器用作stackoverflow,以使用Yahoo和Google身份验证。必须有某种方法来调整Zend OpenID类在运行一系列正则表达式检查以进行发现时使用的解析。