• 什么是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. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  2. SignalR 实现web浏览器客户端与服务端的推送功能

    SignalR 是一个集成的客户端与服务器库,基于浏览器的客户端和基于 ASP.NET 的服务器组件可以借助它来进行双向多步对话. 换句话说,该对话可不受限制地进行单个无状态请求/响应数据交换:它将继 ...

  3. codeforces 720A:Closing ceremony

    Description The closing ceremony of Squanch Code Cup is held in the big hall with n × m seats, arran ...

  4. 第六章 管理类型(In .net4.5) 之 创建类型

    1. 概述 本章内容包括 C#5中如何更好的创建类型以及如何扩展现有类型. 2. 主要内容 2.1 如何选择类型 C#类型系统包括三种类型:值类型.引用类型.指针类型.(指针类型用于非托管代码,很少使 ...

  5. express 学习笔记

    首先把这个库加载下来 npm install -g express 这样会安装它所有依赖包,这个非常恐怖.这个框架要依赖这么多外来的东西,如果有一个不与时俱进就会拖累整个框架的质量. C:\windo ...

  6. SevenZipSharp的入门教程(包含如何加密压缩,解密压缩)

    (一)为什么选择7z              7z 是一种主流高效的压缩格式,它拥有极高的压缩比.在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式.该格式最初被7-Zip实现并采 ...

  7. C++类中的Static关键字二

    静态成员是可以独立访问的,也就是说,无须创建任何对象实例就可以访问,而静态成员函数可不建立对象就可以被使用.   或者说静态函数与一般函数没有太大的区别,只是访问有限制,静态变量跟一般的全局变量的区别 ...

  8. Django ORM queryset object 解释(子查询和join连表查询的结果)

    #下面两种是基于QuerySet查询 也就是说SQL中用的jion连表的方式查询books = models.UserInfo.objects.all() print(type(books)) --- ...

  9. python3+selenium框架设计09-生成测试报告

    使用HTMLTestRunner可以生成测试报告.HTMLTestRunner是unittest模块下的一个拓展,原生的生成报告样式比较丑,GitHub上有大佬优化过后的版本:GitHub地址.下载之 ...

  10. Thinkphp 3.2 验证码图片显示错误解决方法

    在调用验证码之前加上 ob_clean(); 不显示验证码的代码: public function verify(){ $verify = new \Think\Verify(); $verify-& ...