Som*_*DOS 13 openid openid-provider
我不创建大型网站,所以我主要是openid的用户,它是各种各样的实现.我在这里使用openid,我喜欢它因为我正在使用我的gmail账户(我计划将来退出gmail,但现在我用它来处理所有事情),所以我不必记住另一个登录/帐户.
因此,在我天真的用户心中,我认为使用openid很简单:你有很多提供者,当用户试图登录时,你的应用询问他/她的提供者:"这个人能够登录吗?",提供者返回"此用户对某些数据有效"(有些数据可能会返回比其他数据更多的数据),或者如果它是一个不成功的登录名,则只返回任何内容.
我打算在未来的网站上使用openid.在我看来,我想我会使用某种可以为我"抽象"的lib:你的用户使用提供者登录,你的应用程序不知道每一个,这个lib从一个用户名返回一个唯一的标识符供应商.例如:myemail@gmail.com用于登录.它在lib中有一个唯一的id,在哈希计算之后返回,或者你的应用程序将它用于所有内容.
在我的应用程序中,我会尝试只处理由openid libm taht创建的id会处理facebook,twitter,gmail等.也许这个lib有一个带有提供者名称的表,当一个人第一次登录到你的站点时,你在数据库中有一行说"这个唯一的id来自twitter".从理论上讲,这似乎在我的脑海中起作用.
...但是在阅读完Openid是一场噩梦之后,我开始思考,如果找到这样一个能够如此完美地工作的lib,那真的是个好主意.
因为每个人(openid提供者)现在都拥有自己的登录机制,而不是只担心一个系统(我自己,我要创建自己的登录机制) - 现在我不得不担心几十个系统 - 而openid应该解决确切地说.现在,我需要一个巨大的lib,我想要抽象出这整个混乱.
像我描述的那个库是否存在?如果是这样,是否有可能创建一个至少试图表现得像一个真正"开放"梦想的应用程序?
(我知道openid与facebook auth不一样......但是从最终用户的角度来看,它是相同的恕我直言,"在网站上使用相同的登录".我想抽象登录过程,即使协议不是'为此而做的.对于很多服务,你只需要知道某人是否是她自称的人.)
UpT*_*eek 11
库存确实存在(例如DotNetOpenAuth),但这些通常只为您抽象协议和规范 - 您的应用程序仍然必须了解各个提供程序(及其怪癖).
在我看来,OpenId/OpenAuth最大的问题之一是许多提供商的做法略有不同:有些提供商会向您提供您要求的信息,有些则不会.其中一些响应Simpleregistration/Claim,其中一些响应AttributeExchange/Fetch.有些人使用一般网址登录,有些人需要使用一个用户名.
有许多微妙的差异,这使OpenId比它应该的要弱很多.理想情况下,它应该是我(作为网站所有者)可以实现的系统,并且相信我现在支持任何拥有OpenId提供商帐户的用户.现实情况完全不同.即使您使用OpenId进行身份验证,也始终需要使用自己的ID跟踪用户.
有一些服务,比如RPX/Janrain,声称要为你处理所有这些杂乱的细节,但我听说即使这有其令人头痛的问题(例如你在引用的文章中提到过).
在一天结束时,它可能归结为您运行的网站类型.问问自己这个(相当愤世嫉俗的)问题 - 如果个人用户无法登录,我还要关心多少?如果答案是"很多"(因为每个问题将花费你的钱或引起其他悲伤),那么现在可能忘记openId.如果它是像stackoverflow这样的大众/免费网站,那么它可能就是这样.
更新
这里有一些提供程序实现的比较:http://spreadopenid.org/provider-comparison/.它不再更新,但它可能已经过时了. [目前可能是永久性的,但请看谷歌的缓存 ]
您可以通过Wikipedia的提供商列表找到更多信息
这里还有一个非常全面的供应商比较.
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |