php - Google 是唯一需要 "identifier_select"的 OpenID 提供商吗?

标签 php openid lightopenid

我正在 PHP 中开发 OpenID 使用者,并使用出色的 LightOpenID 库 ( http://gitorious.org/lightopenid )。根据示例客户端脚本中的代码,我已成功创建了一个消费者。但是,我遇到了一个障碍:Google 要求将 openid.identityopenid.claimed_id 设置为 "http://specs.openid。 net/auth/2.0/identifier_select"(参见 here )。如果我这样做,它会起作用,但其他提供商(即 AOL)不会。

这是我的问题:

  1. Google 是一个特殊情况吗 – 它是唯一需要 identifier_select 的 OpenID 提供商,这与 OpenID 规范相反?
  2. LightOpenID 库是否存在缺陷?
  3. 我对 OpenID 工作原理的理解是否不正确?
  4. 如果 Google 不是唯一需要 identifier_select 的提供商,那么我只需硬编码其中的数量是有限的,还是有办法通过 OpenID 规范来确定这一点?

我对 OpenID 的内部结构很陌生,所以如果这是一个愚蠢的问题,我不会感到惊讶。在互联网上搜索后,我无法找到有关此主题的任何信息。

最佳答案

这里是 LightOpenID 作者。

  1. 规范允许这样做,因此它可能不是唯一的(其他答案提到了雅虎)
  2. 不,不存在 – LightOpenID 支持此功能。 (请参阅库中的example-google.php)。
  3. 您仍然需要知道发现网址,因此您需要知道提供者。或者告诉用户输入https://www.google.com/accounts/o8/id作为他们的身份。

请注意,这个答案是关于我的库的最新版本,它是在提出这个问题后推送的。对于仍然遇到此问题的任何人,请下载newest version

关于php - Google 是唯一需要 "identifier_select"的 OpenID 提供商吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015765/

相关文章:

php - php 中的简单 openID

php - OpenID 发现方法 - Yadis VS HTML

php - 为什么这是 PHP 中的错误 MYSQL 查询?

c# - OAuth 无法取消注释 OAuthWebSecurity.RegisterGoogleClient() 行

php - PHP 5.3 的 OpenID 库

c# - 我可以使用 OpenID 在 Web 服务中进行身份验证吗?

php - 使用 LightOpenID 获取 Google 通讯录?

php - 使用 Codeigniter 事务插入到两个表

php - 我想插入到一个表中,从 php 中同一数据库中的另一个表获取的数据

php - 为什么我的 Google OAuth URL 在返回的 URL 中放置了哈希值?