我正在实施一个OpenID提供程序,并使其能够顺利运行标准OpenID请求(最终用户知道他们的OpenID网址)。但是,我希望消费者能够在不知道最终用户OpenID url的情况下使用提供商,这将在用户登录时确定。
我发现这在理论上可以通过阅读this stackoverflow question来实现,但是它并没有为我提供很多细节以便能够收集所需的信息来自己开发,事实上它是DotNet没有帮助
有人能指引我到哪里找到有关如何设置的更多信息吗?
我正在使用Zend Framework,但在其文档中找不到任何有用的信息。
答案 0 :(得分:1)
OpenID 是一个URL,所以我不知道如何在不知道它的情况下登录,而不知道传统身份验证的用户名就可以登录。
已经声明,如果您的目标只是为了帮助用户,也许您可以提供某种下拉列表,列出常见的提供商,询问相关部分,并允许用户填写它们?< / p>
由于OpenID是分散的,并且任何网站都可以成为OpenID,因此无法预测可以使用的所有网址,但您肯定能够覆盖流行的网址。 In fact, this SO post covers them.
“其他”选项可以允许直接输入URL来处理所有其他情况。
我会说,加上Zend_OpenId_Consumer/Zend_Auth integration doc会成为一个很好的起点。
答案 1 :(得分:1)
消费者可以指定提供者“应该选择属于最终用户的标识符”。在这种情况下,提供者将选择属于用户的标识符(即最有可能登录到提供者的用户),并且消费者不必提供openid url。请参阅 9.1部分。 OpenId specification page上的请求参数,项目 openid.identity 。基本上,参数openid.identity设置为http://specs.openid.net/auth/2.0/identifier_select
。
关于如何进行设置的问题: 有关更多信息,请阅读specification of OpenId 2.0 另外,阅读Google's OpenId developer page可能会有用。