Web applications 将OpenId集成到现有站点中

Web applications 将OpenId集成到现有站点中,web-applications,login,openid,Web Applications,Login,Openid,我有一个工作的web应用程序,它已经有了一个登录和注册系统。我在找一些关于如何做的建议 到目前为止,用户有用户名、电子邮件、密码和一些可选字段。注册是电子邮件确认的常见过程 现在我想允许用户使用OpenId。因此,我在表中添加了一个openid字段。有两种不同的登录表单,已经注册的用户可以添加他们的openid信息并使用任一登录表单 问题在于,新用户第一次登录该站点,并尝试使用OpenId登录。我为他们创建了一个新用户,我不需要密码,但我仍然需要至少一个用户名,该用户名在网站上使用(我不确定是否

我有一个工作的web应用程序,它已经有了一个登录和注册系统。我在找一些关于如何做的建议

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

现在我想允许用户使用OpenId。因此,我在表中添加了一个openid字段。有两种不同的登录表单,已经注册的用户可以添加他们的openid信息并使用任一登录表单

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

所以我的问题是:

1) 如何管理验证?某些用户需要某些字段(例如密码),但某些用户不需要。我的意思是,我可以这样做,但它马上就会变得一团糟

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


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

关于如何在现有站点中集成OpenID的文章位于

您的问题的一些快速解决方案包括:

1) 我想你需要一个额外的注册过程。开始时,用户可以选择是否使用OpenID。如果没有,您有您现有的注册过程。如果他使用OpenID,大多数信息可能通过属性交换(电子邮件、prename、lastname等)接收

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

3) Gmail没有告诉你邮件内容,这不是真的。(, ). 您必须将地址添加为必需值。
我不知道有一个站点被不同的OpenID提供者描述了对属性交换的支持。以下是他们对AX的支持。

我已经成功地做到了这一点,但非常感谢您提供的有趣链接和您的评论!:-)