我有一个工作的Web应用程序,它已经有一个登录和注册系统。我正在寻找一些如何做的建议。
到目前为止,用户拥有用户名,电子邮件,密码和一些可选字段。注册是通常的电子邮件确认过程。
现在我想允许用户使用OpenId。所以我在表格中添加了一个openid字段。有两种不同的登录表单,已注册的用户可以添加他们的openid信息并使用登录表单。
问题在于新用户第一次来到网站并尝试使用OpenId登录。我为他们创建了一个新用户,我不需要密码,但我仍然需要至少一个用户名,在网站上使用(我不确定是否需要该电子邮件)。
所以我的问题是:
1)如何管理验证?某些用户需要某些字段(例如密码),但某些用户不需要。我的意思是,我可以做到这一点,但它会立即变得混乱。
2)我应该在第一次OpenId登录时询问用户名和电子邮件吗?一方面我会说是,但我担心这会消除使用OpenId的优势,也就是说,不必 提供详细信息。
3)我可以通过SReg或AttributeExchange获取详细信息,但是大多数提供商对这些提供商都有不良支持。例如,我的Gmail OpenId帐户不会告诉电子邮件(!)。是否有一些地方可以了解有关这些扩展的当前支持的更多信息?
答案 0 :(得分:2)
有关如何在现有网站中集成OpenID的文章位于www.paxo.com。
您的探针的一些快速解决方案是:
1)我认为你需要一个额外的注册过程。开始时,用户可以选择是否要使用OpenID。如果没有,您就拥有了现有的注册流程。如果他使用OpenID,大多数信息可能通过属性交换(电子邮件,名字,姓氏......)来收集。
2)您可以通过OpenID属性交换获取电子邮件。我不会要求提供用户名或任何其他不需要的数据。但是我会为用户提供在注册后设置/更改此内容的可能性。
3)Gmail不会告诉您电子邮件,这是不正确的。 (Official Google Docs,Attribute Exchange with lightopenid)。您必须将地址添加为必需值。 我不知道一个站点是不同的OpenID提供商支持属性交换的描述。以下是Yahoo-Article关于他们对AX的支持。