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