我正在使用PHP开发一个OpenID使用者,并使用了梦幻般的LightOpenID库(http://gitorious.org/lightopenid)。基于我在示例客户端脚本中找到的代码,我已成功创建了一个使用者。但是,我遇到了一个障碍:Google要求将openid.identity
和openid.claimed_id
设置为"http://specs.openid.net/auth/2.0/identifier_select"
(请参阅here)。如果我这样做,它可以工作,但其他提供者(即AOL)不会。
以下是我的问题:
identifier_select
的OpenID提供商,与OpenID规范相反?identifier_select
的提供商,那么我只需要硬编码,或者通过OpenID规范确定这一点吗?我是OpenID内部的新手,所以如果这是一个愚蠢的问题,我不会感到惊讶。在搜索互联网之后,我无法找到关于这个主题的任何信息。
答案 0 :(得分:7)
LightOpenID作者在这里。
请注意,这个答案是关于我的库的最新版本,在问到这个问题之后推出了这个版本。对于仍在努力解决此问题的任何人,请下载newest version
答案 1 :(得分:6)
是的,一个完全正确实现的OpenID RP库会自动注意到Google(以及任何其他类似的OP)需要identifier_select,因为它是标识符发现步骤的一部分。对于你正在使用的库感到抱歉,但听起来好像是因为OpenID的实现不完整而引起你的悲痛。
顺便说一句,AOL 支持identifier_select。
答案 2 :(得分:0)
这用于在OP驱动ID选择模式下进行身份验证。它不太常见,但不是一个角落案例。在我使用的所有OP提供商中,我注意到谷歌和雅虎需要这个。
这是支持OpenID 2.0中的定向身份所必需的。基本上,您可以为不同的网站获得不同的OpenID。隐私权倡导者正在努力转向这种模式,所以我认为你必须尽快支持这种模式。