2010-11-16 116 views
0

我环顾四周OpenID教程,我似乎无法找到任何东西只是非常简单和直接了当如何跳过注册过程,并获得用户的电子邮件地址和类似的PHP的东西(或任何语言)。它是新的还是仅仅缺乏内容?也许你知道我没有的链接?简单的OpenID实现

回答

3

我不知道你所说的“如何跳过注册过程”的意思。注册过程在您的应用程序中定义,而不是OpenID的一部分。

OpenID是为委派验证的基础:它可以为每个用户提供一个唯一的标识符(在身份URL),并允许你来验证用户确实拥有该标识。有扩展,最显着的是SReg(简单注册)和AX(属性交换)以允许查询附加信息。请记住,并非所有的身份提供者都支持它们。

如果我可以总结一下OpenID的4点简单的步骤:

  1. 向用户查询自己的OpenID URL。某些提供商(例如Google)允许您使用通用网址,并自动计算出用户的完整身份网址。
  2. 将用户转发给提供商,供他们确认,通常通过用户名/密码组合确认他们拥有该URL。
  3. 身份提供商将使用您在步骤(2)中指定的“返回URL”,并将用户重定向到响应中。
  4. 解析对成功/失败状态的响应。

如果提供程序支持SREG或AX,必须在过程中请求注册它们(2)和解析在步骤返回的属性(4)。

编辑如果您注册用户,它将在步骤(4)后完成。我使用的设置使用返回的属性(如果有的话)来预填充注册表单。正如我所说,这个注册表格可以省略,你可以自动生成一个用户名。

+0

是的,这就是我正在谈论的,获取用户的数据。我正在努力寻找如何获取用户数据的好例子。我也想看看如何验证用户的一个很好的例子。我使用的是LightOpenId,因为其他API看起来有点过分 – Webnet 2010-11-16 20:19:01

+0

我主要只对Google和Facebook感兴趣 – Webnet 2010-11-16 20:19:31

+1

Facebook不是OpenID提供商。他们允许您使用现有的OpenID登录。如果您想使用Facebook帐户,则需要查看Facebook Connect。 – 2010-11-16 20:28:26

0

他们的wiki很不错。该页面包含许多语言的实现。也许这会有所帮助。

http://wiki.openid.net/w/page/12995176/Libraries

+0

这就是我找到我使用的LightOpenID的地方,但我无法让Google给我一个用户的电子邮件地址或任何其他信息。 – Webnet 2010-11-16 20:20:11