标签:
详细的定义可以看wiki,下面举个例子说说我的理解
现在很多网站都可以用第三方的账号登陆,比如,现在我要登录淘宝
买东西,而如果我没有淘宝的账号,我也可以用微博
的账号登录,这个微博账号就是第三方账号了。
OpenID强调 验证 authentication
,而OAuth强调 授权 authorization
。 验证就是说“我”是不是
(微博用户),而授权是说“淘宝”可不可以
,而可不可以
的前提则是“我”是不是
。
好啦,我屁颠屁颠输入账号跟密码,如果可以登录说明我这个身份是对的,通过了微博的验证后微博就告诉淘宝说,没错没错,我家里确实有么这个家伙
上面这些都是OpenID的责任,而且OpenID也只做这件事,就是前面说的是不是
所以,淘宝通常就会做一件事,什么事呢?这时就轮到OAuth出场了,淘宝在把我交给微博验明正身的时候其实还“忽悠“了我,明明只是验个身份,却问我要不要把我在微博家叫什么名做过什么事也告诉它(就是通常看到的几个打勾选项:允许访问我的昵称
/允许访问我的头像
等等),淘宝说这样就可以为我提供更多的服务,什么服务呢?模凌两可,我呢看到有更多服务也没多想就打勾了,不要白不要是吧。
这里就用到了OAuth,就是前面说的可不可以
,这个要是真发现我在微博家干过的事,会不会把我加入重点监控对象,那就要看淘宝有多少节操了
其实现在很多的第三方登录都是这样,验证身份的同时顺便把你在其他地方的资料拿到手,名曰资料共享,其实共享一些非敏感信息倒也无妨,还可以免去了每去一个新网站都要填写一大堆重复资料的问题。但是我要吐槽的是,很多网站明明让我用第三方账号登录,你都OAuth了为毛登录后还要再填一遍邮箱昵称之类的东西?早知道这样我还不如直接在你这边注册就好了,在我看来这是用户体验的问题了。
写这些其实就是想用简单通俗的语言来解释这两者的区别(旁边哥们怒了:那你为毛还这么啰嗦!啰嗦!嗦! 哎呀~我的耳朵我的耳朵…)
以上,不对的地方请指正,谢谢!
标签:
原文地址:http://www.cnblogs.com/linyc/p/4338092.html