2

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

我发现通过阅读这个 stackoverflow question理论上这是可能的,但是它并没有为我提供很多细节来收集自己开发所需的信息,事实上它是 DotNet 并没有帮助。

谁能指导我到哪里可以找到有关如何设置的更多信息?

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

4

2 回答 2

1

OpenID一个 URL,所以我看不出您如何在不知道它的情况下登录,而不是在不知道传统身份验证用户名的情况下登录。

已经声明,如果您的目标只是帮助用户,也许您可​​以提供某种下拉列表,列出常见的提供者,询问相关部分,并允许用户填写它们?

由于 OpenID 是去中心化的,并且任何站点都可以成为 OpenID,因此无法预测所有可以使用的 URL,但您当然可以涵盖流行的 URL。事实上,这篇 SO 帖子涵盖了它们。

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

我想说的是,加上Zend_OpenId_Consumer/Zend_Auth 集成文档将是一个很好的起点。

于 2012-04-16T16:28:01.353 回答
1

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

关于如何设置的问题:有关更多信息,您应该阅读OpenId 2.0 的规范 此外,阅读Google 的 OpenId 开发人员页面可能会很有用。

于 2012-04-16T19:05:33.893 回答