我是openID的新手.我花了很多时间思考最佳实践是什么让用户可以选择,使用各种支持OpenID的帐户登录.
(我必须进一步澄清,我的系统不是一个系统,只需要一个简单的"一次性身份验证"来进行博客发布,而是一个完整的系统,如社交网络,用户将始终添加更多信息并编辑现有的"他的个人账户"的信息......因此,系统本身需要具有某种与用户所做工作相关联的"账户".)
鉴于我没有为mysite创建"具有密码和用户名的专用useraccount"并且仅依赖于openID登录,我遇到了以下问题:当用户"A"通过"Google"登录(第一次)时帐户"然后他所做的一切都将与Google帐户相关联.当他回来并且不点击"Google帐户登录"而是点击"Yahoo Signin"时,他将登录,但将创建/获得与Yahoo关联的新帐户.他使用Google帐户所做的一切似乎都丢失了.只是在我的网站上向每个用户发出"openID indepedant and unique username"(无密码)并不起作用:就好像我在登录时要求这个唯一的用户名(没有密码),每个人都可以猜到其他人的用户名并关联OpenID跟他们.但是,如果我还必须拥有此用户名的密码,那么我最终会在没有openID的情况下结束我们的位置:然后我必须向用户发出某种"主帐户"(使用usernam和passwort),他可以,为方便起见,与任意数量的openId帐户相关联.但是,在这种情况下,我有什么理由而不是openID?因为用户必须记住"我的masterpassword和userid"...
=>这是否意味着,openID不"直接"支持多个帐户的"自由选择"?如果我希望用户能够使用任意openID用户帐户登录(对于每次登录),那么这是唯一的方式:
1.)用户通过"已知的openID帐户"登录=>这样就不用了
2.)用户通过"未知的openID帐户"登录=>通过"未知"openId(例如Yahoo)"验证"用户,但当用户回到我的页面时,向用户说明这一点(Yahoo )openID帐户未知(=没有进一步的工作与它相关联=它就像一个新帐户)并询问,他是否可以通过其他帐户最后一次登录并提供支持的openID帐户列表.然后,用户可以选择他上次使用的提供商之一(例如Google).然后他除了已经登录(与雅虎),他还必须登录他最后一次使用的"旧"(谷歌)帐户.这两个帐户然后"相互关联",现在可以通过较新的(Yahoo)openID帐户/登录访问旧(Google)帐户上的任何工作?
或者还有其他方法可以为一个USERACCOUNT支持"多个openID帐户"吗?
(我之所以这样问:OpenID并不是普通的终端用户所知道的.如果我打印一个包含来自谷歌,雅虎登录Faceebook的大型列表,会有很多用户使用Google进行初始登录,但是下次他们回来时可能会选择Facebook(因为他们刚刚离开了facebook网站,更有吸引力点击facebook图标).这就是"网站工作"的最后"15年":只有一种方式登录:一个用户名 - 输入字段和一个密码输入字段.如果我现在打印一个巨大的帐户列表,其中每个用户都有一个帐户,可能每天登录不同的帐户不理解这将导致问题.理想的世界是用户可以通过我的openID-Provider列表的任意帐户登录,并且将所有帐户相互"关联"...
我希望我能够描述我的问题.
我非常感谢你的帮助和想法(mybe我在这里完全被误解了)
谢谢你!一月
是的,用户必须同时登录.
用户首次使用Google帐户登录,使用该应用并注销.应用程序创建内部用户登录(在grombeestje的表用户中)并将其与Google帐户相关联.(在grombeestje的表格openid)
之后,用户已登录Yahoo并再次使用Yahoo Account登录.现在,用户也可以通过其他服务进行识别
一个.用户选择并选择Google帐户.
湾 用户使用Google帐户登录.
C.应用程序会使用当前登录名附加Google ID.
此外,任何时候当用户希望他可以选择将登录添加到他的个人资料并识别他/她的其他openID,如Blogger,Facebook等.如果他用这些帐户创建了不同的登录(在grombeestje的表用户中),那么他可以放弃其中一个使用应用程序的本地登录(在grombeestje的表用户中)或将它们合并为一个.
OpenID是一种身份验证机制,而不是配置文件存储机制.您应该仍然拥有站点上人员的唯一标识符,并且应该维护一个记录,该记录以与存储与该唯一标识符相关的密码相同的方式存储与该唯一标识符相关的OpenID.
在数据库中有一个表,其中包含用户帐户和一个链接表,用户帐户将OpenID链接到用户ID.
喜欢
表用户
ID NAME
1 PIET
2 KEES
和
表openid
OPENID USERID
http:// ..... 1
http:// ..... 1
http:// ..... 2
http:// ..... 2