用通俗的例子解释OAuth和OpenID的区别【原】

  • 什么是OAuth(Wiki)
  • 什么是OpenID(Wiki)

详细的定义能够看wiki,下面举个例子说说个人理解网站

如今不少网站均可以用第三方的帐号登录,好比,如今我要登陆淘宝买东西,而若是我没有淘宝的帐号,我也能够用微博的帐号登陆,这个微博帐号就是第三方帐号了。code

OpenID强调 验证 authentication,而OAuth强调 受权 authorization。 验证就是说“我”是否是(微博用户),而受权是说“淘宝”可不能够,而可不能够的前提则是“我”是否是对象

过程大概是这样

  1. 我点开微博登陆的连接,淘宝就跳到微博登陆页面,问我你是否是那个微博用户,是的话你用你的帐号密码去登陆,你先去给微博验明正身,是的话再来找我
  2. 好啦,我屁颠屁颠输入帐号跟密码,若是能够登陆说明我这个身份是对的,经过了微博的验证后微博就告诉淘宝说,没错没错,我家里确实有么这个家伙ip

    上面这些都是OpenID的责任,并且OpenID也只作这件事,就是前面说的是否是get

  3. 而后呢,淘宝就说好好,有你微博验证我放心,因而就让我经过了
  4. 等等,这时淘宝只知道微博他们家有我存在,可是并不知道我在微博家里叫什么名,作过什么事,其实淘宝也不该该知道,对吧,要是知道我在微博家总是处处举报别人卖假货坑顾客什么的,那我让你进我大淘宝岂不是会坏了个人大事,你丫是来捣乱的吧(至于淘宝为何会这么想,哼哼~大家懂的)
  5. 因此,淘宝一般就会作一件事,什么事呢?这时就轮到OAuth出场了,淘宝在把我交给微博验明正身的时候其实还“忽悠“了我,明明只是验个身份,却问我要不要把我在微博家叫什么名作过什么事也告诉它(就是一般看到的几个打勾选项:容许访问个人昵称/容许访问个人头像等等),淘宝说这样就能够为我提供更多的服务,什么服务呢?模凌两可,我呢看到有更多服务也没多想就打勾了,不要白不要是吧。io

    这里就用到了OAuth,就是前面说的可不能够,这个要是真发现我在微博家干过的事,会不会把我加入重点监控对象,那就要看淘宝有多少节操了微博

其实如今不少的第三方登陆都是这样,验证身份的同时顺便把你在其余地方的资料拿到手,名曰资料共享,其实共享一些非敏感信息倒也无妨,还能够免去了每去一个新网站都要填写一大堆重复资料的问题。可是我要吐槽的是,不少网站明明让我用第三方帐号登陆,你都OAuth了为毛登陆后还要再填一遍邮箱昵称之类的东西?早知道这样我还不如直接在你这边注册就行了,在我看来这是用户体验的问题了。登录

写这些其实就是想用简单通俗的语言来解释这二者的区别(旁边哥们怒了:那你为毛还这么啰嗦!啰嗦!嗦! 哎呀~个人耳朵个人耳朵…)监控

 

以上,不对的地方请指正,谢谢!用户体验

相关文章
相关标签/搜索