Php 谷歌是唯一一家需要;标识符“U选择”;?

Php 谷歌是唯一一家需要;标识符“U选择”;?,php,openid,lightopenid,Php,Openid,Lightopenid,我正在用PHP开发一个OpenID使用者,并使用奇妙的LightOpenID库()。基于示例客户端脚本中的代码,我成功地创建了一个使用者。然而,我遇到了一个障碍:谷歌需要将openid.identity和openid.claid\u id设置为”http://specs.openid.net/auth/2.0/identifier_select“(请参阅)。如果我这样做,它会工作,但其他提供商(即AOL)不会 以下是我的问题: 谷歌是不是一个绝无仅有的例子——它是唯一一家需要标识符\u sele

我正在用PHP开发一个OpenID使用者,并使用奇妙的LightOpenID库()。基于示例客户端脚本中的代码,我成功地创建了一个使用者。然而,我遇到了一个障碍:谷歌需要将
openid.identity
openid.claid\u id
设置为
”http://specs.openid.net/auth/2.0/identifier_select“
(请参阅)。如果我这样做,它会工作,但其他提供商(即AOL)不会

以下是我的问题:

  • 谷歌是不是一个绝无仅有的例子——它是唯一一家需要
    标识符\u select
    的OpenID提供商,与OpenID规范相反
  • LightOpenID库有缺点吗
  • 我对OpenID工作原理的理解是否不正确
  • 如果谷歌不是唯一一家需要
    identifier\u select
    的提供商,那么我只需要硬编码就可以了,还是有办法通过OpenID规范来确定这一点

  • 我是OpenID内部的新手,所以如果这是一个愚蠢的问题,我不会感到惊讶。在浏览互联网之后,我还没有找到关于这个主题的任何信息。

    这用于在OP驱动的ID选择模式下进行身份验证。这不太常见,但不是一个极端情况。在我使用的所有OP提供商中,我注意到谷歌和雅虎都要求这样做


    这是支持OpenID2.0中的定向标识所必需的。基本上,您可以为不同的网站获得不同的OpenID。隐私倡导者正在推动这一模式的发展,因此我认为你必须尽快或稍后支持这一模式。

    谷歌与规范并不矛盾。OpenID2.0规范绝对允许标识符选择流,它支持所谓的“定向身份”,谷歌是唯一值得注意的操作(据我所知)这实际上锻炼了你的能力

    是的,一个完全正确实现的OpenID RP库会自动注意到Google(以及任何其他类似的OP)需要标识符_select,因为它是标识符发现步骤的一部分,该步骤将在此基础上进行。很抱歉,您正在使用的库,但听起来可能是因为OpenID的实现不完整而让您感到悲伤


    顺便说一下,AOL确实支持标识符选择。

    这里的LightOpenID作者

  • 规范允许它,所以它可能不是唯一的一个(其他答案提到雅虎)
  • 不,没有–LightOpenID支持此功能。(见图书馆的)
  • 您仍然需要知道发现url,因此您需要知道提供者。或者告诉用户输入他们的身份

  • 请注意,这个答案是关于my library的最新版本的,它是在提出这个问题后推出的。对于仍在解决此问题的任何人,请下载

    在重定向用户之前,是否有任何方法检测提供商需要定向身份?我可以为雅虎和谷歌提供硬编码支持,但我仍然希望找到更灵活的解决方案。在OpenID规范中,我可能遗漏了一些明显的东西。与OpenID1.0不同,您必须为OpenID2.0提供程序做一些资源调配工作。例如,您需要在您的站点上粘贴NASCAR徽标,因为您不能期望用户知道OpenID2.0URL是什么。你可以在你的站点配置中添加一个标志。当然这不是一个愚蠢的问题(如果存在的话),你甚至提供了大量的信息、相关链接、精心设计的问题和一个你自己实际寻找的注释!看起来我只需要扩展库(LightOpenID)。两个流行的PHP OpenID库(Zend组件和JanRain的PHP OpenID)提供了比我需要的更多的灵活性,并且没有LightOpenID那么好的接口。祝我好运!我认为大多数人支持定向身份,包括myopenid和yahoo。事实上,我认为你把定向身份和标识符_select混淆了,这是不同的事情。Identifier_select是OP Identifier启动的OpenID体验,用户不必知道自己的标识符。“定向标识”是指OP为用户登录的每个RP提供一个成对的唯一标识符。例如,Yahoo支持identifier_select,但不支持directed identity.Mewp,感谢您几天前才推送的库更新。现在,“identifier_select”的使用是自动的(即内置于发现过程中),这意味着LightOpenID的使用将以相同的方式对所有提供者起作用。再次感谢,继续努力。我喜欢你的类库,这样干净(可读)的代码很少见。我刚刚陷入OpenID的诱惑,我只想说我绝对喜欢你的类。我对OpenID的概念仍然很陌生,我花了一整晚的时间阅读了它,但是我仍然不能完全理解AXs和SREG,但是明天又是新的一天!另外,你介意我把你的代码作为我的OSS项目()的一部分发布吗?@Alix Axel:既然你的项目是MIT授权的,你肯定知道许可证允许它。换句话说:当然可以,只要你不声称是你写的。此外,您不必深入了解SREG/AX的工作原理。它只是获取用户附加信息的一种方法,您可以将其标记为otional或required。您唯一需要知道的是AX字段名,可以在中找到。如果您有任何其他问题,请留言给我。