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

详细的定义可以看wiki,下面举个例子说说我的理解

现在很多网站都可以用第三方的账号登陆,比如,现在我要登录淘宝买东西,而如果我没有淘宝的账号,我也可以用微博的账号登录,这个微博账号就是第三方账号了。

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

过程大概是这样

  1. 我点开微博登录的链接,淘宝就跳到微博登录页面,问我你是不是那个微博用户,是的话你用你的账号密码去登录,你先去给微博验明正身,是的话再来找我
  2. 好啦,我屁颠屁颠输入账号跟密码,如果可以登录说明我这个身份是对的,通过了微博的验证后微博就告诉淘宝说,没错没错,我家里确实有么这个家伙

    上面这些都是OpenID的责任,而且OpenID也只做这件事,就是前面说的是不是

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

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

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

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

以上,不对的地方请指正,谢谢!

用通俗的例子解释OAuth和OpenID的区别【原】的更多相关文章

  1. OAuth和OpenID的区别(转)

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用.  OAuth协议为用户资源的授权提 ...

  2. OAuth和OpenID的区别

    OAuth关注的是authorization:而OpenID侧重的是authentication.从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别: authorization: ...

  3. 小例子解释wait与notify的区别

    系统慢可能有很多种原因,硬件资源不足,语句不优化,结构设计不合理,缺少必要的运维方式.所有的这些问题都可以在阻塞与等待中看出端倪,发现并解决问题. 首先是下载开发工具,磨刀不误砍材工.点此下载 这是一 ...

  4. oauth与openid

    转自http://desert3.iteye.com/blog/1701626 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列 ...

  5. 谁能用通俗的语言解释一下什么是 RPC 框架

    转载自知乎:https://www.zhihu.com/question/25536695 知乎上很多问题的答案还是很好的,R大就经常在上面回答问题~ 谁能用通俗的语言解释一下什么是 RPC 框架? ...

  6. 用例程解释create_singlethread_workqueue与create_workqueue的区别

    用例程解释create_singlethread_workqueue与create_workqueue的区别 系统版本:linux3.4 使用create_singlethread_workqueue ...

  7. php MVC 及例子解释

    根据http://www.21ds.net/article/4/453改写: MVC模式在网站架构中十分常见.它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以 ...

  8. 谁能用通俗的语言解释一下什么是 RPC 框架?

    转载自知乎:https://www.zhihu.com/question/25536695 知乎上很多问题的答案还是很好的,R大就经常在上面回答问题 关于RPC你的题目是RPC框架,首先了解什么叫RP ...

  9. 转载:怎样用通俗的语言解释REST,以及RESTful?

    作者:覃超链接:https://www.zhihu.com/question/28557115/answer/48094438来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...

随机推荐

  1. Elasticsearch从0.90(0.90.x)到1.2(1.x)API的变化-二

    本文为官方文档的译文加个人理解.作者翻译时,elasticsearch(下面简称es)的版本为1.2.2. 请支持原创:http://www.cnblogs.com/donlianli/p/38367 ...

  2. 1061: [Noi2008]志愿者招募 - BZOJ

    Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完 ...

  3. JavaScript中创建字典对象(dictionary)实例

    这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...

  4. PAT-乙级-1044. 火星数字(20)

    1044. 火星数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 火星人是以13进制计数的: 地球人的 ...

  5. Hibernate4.1.4配置二级缓存EHCache步骤

    1.当然首先引入EHCache相关的jar包 这些包不需要另外下载,在Hibernate官方网站下载Hibernate4.1.7的压缩包(如:hibernate-release-4.1.7.Final ...

  6. Host Definition

    Description: A host definition is used to define a physical server, workstation, device, etc. that r ...

  7. Android:安卓资源引用符号的含义

    @代表引用资源 @*代表引用系统的非public资源,如: @*android:color/white @[package:]type/name引用自定义资源,如: android:text=&quo ...

  8. 如何在VS2010中使用Async功能?

    伴随C#5.0的发布,“异步”特性越来越深入人心:在VS2012中早就可以使用它大大简化异步编程的痛苦,那么在VS2010中呢?我们无法尝鲜么?答案是“No”!,其实我们可以这样做: 1)必须把你的V ...

  9. linux0.11文件分析

    在kernel包中有几个重要的文件夹和文件,他们各司其职,处理着有关内核的一些功能操作.其中文件夹有三个:blk_drv(块设备驱动),chr_drv(字符设备驱动),math(数学协处理器)  文件 ...

  10. poj 1080 Human Gene Functions(dp)

    题目:http://poj.org/problem?id=1080 题意:比较两个基因序列,测定它们的相似度,将两个基因排成直线,如果需要的话插入空格,使基因的长度相等,然后根据那个表格计算出相似度. ...