我是一个openID的新手。我花了很多时间思考如何最好地为用户提供选择,以使用各种开启OpenID的帐户进行登录。
(我必须进一步说明,我的系统不是只需要进行简单“一次身份验证”即可进行博客发布的系统,而是像社交网络网站一样的完整系统,用户将始终添加更多信息并编辑现有信息以“他的个人帐户”...因此系统本身需要具有与用户所做工作相关联的某种“帐户”)
考虑到以下情况:我不创建“专用于mysite的带有密码和用户名的用户帐户”,而仅依赖于openID登录,那么我遇到了以下问题: 当用户“A”第一次通过“Google帐户”登录时,他所做的所有事情都将与Google帐户相关联。 当他回来并且不点击“Google帐户登录”,而是点击“Yahoo登录”,他将被签入但将创建/获取与Yahoo相关联的新帐户。 他使用Google帐户做的所有事情似乎都会丢失。 简单地向每个用户发放一个“独立的openID和唯一的用户名”(无需密码)在我的网站上不起作用:因为如果我在登录时要求这个唯一的用户名(没有密码),每个人都可以猜测其他人的用户名并将OpenID与他们相关联。 但是,如果我还必须为此用户名设置密码,那么我最终会回到没有OpenID的过去:然后我必须向用户发放某种“主帐户”(带有用户ID和密码),以便他可以方便地将其与任意数量的openId帐户相关联。 但出于什么原因我想要在这种情况下使用openID? 因为用户无论如何都必须记住“我的主密码和用户名”...
=>这是否意味着,openID不“直接”支持“自由选择”多个帐户? 如果我希望用户能够使用任意openID用户帐户登录(每个单独的登录),唯一的方法是这样做:
1.)用户通过“已知的openID帐户”登录=>没问题,不需要做任何事情
2.) 用户通过“未知openID帐户”登录=> 通过“未知” openId(例如Yahoo)对用户进行身份验证,但当用户回到我的网页时,向用户说明这个(Yahoo) openID 帐户是未知的(=与其它帐户没有关联=就像一个新帐户),然后问他是否上一次使用了其他帐户登录,并提供支持的 openID 帐户列表。用户随后可以选择他上次使用的提供者之一(例如Google)。他除了已经用 Yahoo 登录外,还必须登录上次使用的“旧”(Google)帐户。然后两个帐户就被“关联在一起”,任何在旧(Google)帐户上的工作现在也可以通过新的(Yahoo)openID 帐户/登录访问。
或是否有其他方法来为一个用户帐户支持“多个 openID 帐户”?
(我询问原因:OpenID 对普通终端用户而言并不是很知名。如果我列出从 Google、Yahoo 到 Facebook 的大量登录列表,那么将有很多用户使用 Google 进行最初的登录,但下一次他们回来可能会选择 facebook(因为他们刚刚离开 Facebook 网站,单击 Facebook 图标更具吸引力)。这是“网站运作”的方式,持续了“15年”:只有一种登录方式:一个用户名输入字段和一个密码输入字段。如果我现在打印出一个用户在每个帐户上都有帐户的大型列表,则可能会从一天到下一天使用不同的帐户登录而不了解这将导致的问题。因此,理想的世界是用户可以通过我的 openID 提供程序列表中的任意帐户进行登录,并将所有帐户“关联”起来...
我希望我能够清楚地描述我的问题。
我非常感谢您的帮助和想法(也许我对这里的某些事情完全误解了)
非常感谢! Jan