2010-04-20 85 views
2

我有一个有效的Web应用程序,它已经有一个登录和注册系统。我正在寻找一些关于如何去做的建议。将OpenId集成到一个现有的网站

到目前为止,用户有一个用户名,一个电子邮件,一个密码和一些可选的字段。注册是电子邮件确认的常用流程。

现在我想让用户使用OpenId。所以我在桌子上添加了一个openid字段。有两种不同的登录表单,已经注册的用户可以添加他们的openid信息并使用登录表单。

问题是新用户第一次登录该网站并尝试使用OpenId登录。我为他们创建了一个新用户,并且我不需要密码,但仍然需要至少一个用户名,该用户名在网站上使用(我不确定是否需要该电子邮件)。

所以我的问题是:

1)如何管理验证?某些用户需要某些字段(例如密码),但其他字段则不需要。我的意思是,我可以做到这一点,但它会立即变得混乱。

2)我应该在第一次OpenId登录时询问用户名和电子邮件地址吗?一方面我会说是的,但是我担心这会消除使用OpenId的优势,也就是说,不需要提供详细信息 。

3)我可以通过SReg或AttributeExchange获得详细信息,但大多数提供商对这些提供的支持不好。例如我的Gmail OpenId帐户不会告诉电子邮件(!)。有什么地方可以更多地了解目前对这些扩展的支持吗?

回答

2

有关如何将OpenID集成到现有站点的文章为www.paxo.com

一些快速的解决方案,你发生问题的是:

1)我认为你需要一个额外的注册过程。开始时,用户可以选择是否要使用OpenID。如果没有,您将拥有现有的注册流程。如果他使用OpenID,大多数信息可能通过属性交换(电子邮件,预先名称,姓氏......)收回。

2)您可以通过OpenID属性交换获取电子邮件。我不会要求输入用户名或任何其他非真实需要的数据。但是我会为用户在注册后设置/更改这个提供了一个可能性。

3)Gmail不会告诉你电子邮件。 (Official Google Docs,Attribute Exchange with lightopenid)。您必须将地址添加为所需的值。 我不知道一个站点是不同的OpenID提供程序支持属性交换的描述。这里是关于他们对AX的支持的Yahoo-Article

+0

我已经设法使这项工作,但非常感谢你有趣的链接和您的意见! :-) – Andrea 2011-02-05 15:19:46