Php 在不要求用户知道其OpenID url的情况下使用OpenID?

Php 在不要求用户知道其OpenID url的情况下使用OpenID?,php,zend-framework,authentication,openid,Php,Zend Framework,Authentication,Openid,我正在实现一个OpenID提供程序,并让它在标准OpenID请求(最终用户知道他们的OpenID url)中顺利运行。然而,我希望消费者能够在不知道最终用户OpenID url的情况下使用提供者,这将在用户登录时确定 我发现,通过阅读,这在理论上是可能的,但是它并没有为我提供太多的细节,我自己也无法收集到开发这本书所需的信息,事实上,它是DotNet并没有帮助 有人能告诉我在哪里可以找到更多关于如何设置的信息吗 我正在使用Zend Framework,但在它的文档中找不到任何有用的信息。Open

我正在实现一个OpenID提供程序,并让它在标准OpenID请求(最终用户知道他们的OpenID url)中顺利运行。然而,我希望消费者能够在不知道最终用户OpenID url的情况下使用提供者,这将在用户登录时确定

我发现,通过阅读,这在理论上是可能的,但是它并没有为我提供太多的细节,我自己也无法收集到开发这本书所需的信息,事实上,它是DotNet并没有帮助

有人能告诉我在哪里可以找到更多关于如何设置的信息吗

我正在使用Zend Framework,但在它的文档中找不到任何有用的信息。

OpenID是一个URL,所以我不知道你如何在不知道它的情况下登录,就像你在不知道传统身份验证的用户名的情况下登录一样

为了记录,如果你的目标只是帮助用户,也许你可以提供一些下拉列表,列出常见的提供者,要求相关的部分,并允许用户填写它们

由于OpenID是分散的,任何站点都可以成为OpenID,因此无法预测所有可以使用的URL,但您肯定可以涵盖流行的URL

“其他”选项可以允许直接输入URL来处理所有其他情况


我想说的是,加上将是一个很好的起点。

消费者可以指定提供商“应该选择属于最终用户的标识符”。在这种情况下,提供商将选择属于用户(即最有可能登录到提供商的用户)的标识符,而消费者不必提供openid url。见第9.1节。上的请求参数,项openid.identity。基本上,参数openid.identity设置为
http://specs.openid.net/auth/2.0/identifier_select

关于您提出的如何设置此功能的问题: 有关更多信息,请阅读
另外,继续阅读可能会很有用。

如果你查看我文章中的链接,你会发现这实际上是可能的。我也看不出为什么用户需要知道他/她的openid url,消费者的应用程序可以简单地链接到openid端点,然后以交互方式验证用户并将其openid返回给消费者。好吧,你的术语似乎有点混乱。OpenID是一个过程,一个标准,而不是一个值。您调用的OpenID实际上是OpenID身份验证过程的返回值。URL是您发送用户以获得身份验证的位置。您必须要求他们提供该URL,或者使用某种提供者列表(从而限制他们可以使用哪些服务进行身份验证),这样用户就不必提供URL,但您必须有一个提供者,并且必须有人知道URL才能与该提供者联系(
define(“TEST_SERVER”),Zend_OpenId::absoluteURL(“example-8.php”))
如果您只打算提供有限的选择,那么可以预测常见的提供者。例如,如果我使用wordpress博客作为提供者,您将不得不以某种方式询问或生成提供者URL。此外,经过思考,您可能在流程中阅读的是方法,该方法检查一个用户已经登录到提供商。看看这是否有帮助。谢谢加藤,我的术语可能确实有点偏离。我的问题是OpenID如何要求我这样做,我已经知道这是可能的,并且我必须提供一个终点。dennisg很好地回答了这个问题。从研究中,我已经做到了似乎Zend OpenID提供程序不支持我要进行的OpenID查询类型,因此我必须求助于另一个库。