我正在 PHP 中开发 OpenID 使用者,并使用出色的 LightOpenID 库 ( http://gitorious.org/lightopenid )。根据示例客户端脚本中的代码,我已成功创建了一个消费者。但是,我遇到了一个障碍:Google 要求将 openid.identity
和 openid.claimed_id
设置为 "http://specs.openid。 net/auth/2.0/identifier_select"
(参见 here )。如果我这样做,它会起作用,但其他提供商(即 AOL)不会。
这是我的问题:
- Google 是一个特殊情况吗 – 它是唯一需要
identifier_select
的 OpenID 提供商,这与 OpenID 规范相反? - LightOpenID 库是否存在缺陷?
- 我对 OpenID 工作原理的理解是否不正确?
- 如果 Google 不是唯一需要
identifier_select
的提供商,那么我只需硬编码其中的数量是有限的,还是有办法通过 OpenID 规范来确定这一点?
我对 OpenID 的内部结构很陌生,所以如果这是一个愚蠢的问题,我不会感到惊讶。在互联网上搜索后,我无法找到有关此主题的任何信息。
最佳答案
这里是 LightOpenID 作者。
- 规范允许这样做,因此它可能不是唯一的(其他答案提到了雅虎)
- 不,不存在 – LightOpenID 支持此功能。 (请参阅库中的example-google.php)。
- 您仍然需要知道发现网址,因此您需要知道提供者。或者告诉用户输入https://www.google.com/accounts/o8/id作为他们的身份。
请注意,这个答案是关于我的库的最新版本,它是在提出这个问题后推送的。对于仍然遇到此问题的任何人,请下载newest version
关于php - Google 是唯一需要 "identifier_select"的 OpenID 提供商吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015765/