故事梗概:

淘宝店主糖糖在京郊仓库存了一批大白兔奶糖,为了防止仓库钥匙被偷把仓库的钥匙交给了专业的钥匙保管员公司。 糖糖卖了一斤大白兔需要快递公司的小迪送货。快递员小迪找钥匙保管公司借钥匙,然后去京郊仓库去取货。

出场人物:

快递公司的小迪 -------OAuth服务的消费者,也就是这个故事的主角

钥匙保管公司 ------ OAuth 服务提供者

淘宝店主 糖糖 ------- 最终用户

背景:

最近治安一直不好,经常发生被盗事件。小偷也学聪明了,直接偷两块大白兔不如偷钥匙,然后拿着钥匙开着卡车去仓库堂而皇之的偷。这样的情况越来越多,大家都开始重视钥匙的保管了,于是老欧看到了机会,开了一家“老欧钥匙保管公司”,做了几年经营的还真不错,大家不论什么钥匙都愿意在老欧的钥匙保管公司保存。后来为了方便客户老欧推出了一项租借临时钥匙的服务,不过谁要想从他那里借钥匙首先得先在他那里登记,登记好了老欧会给他一个密码。登记的客户可以在征得别人同意的情况下借别人的钥匙。快递公司的小迪经常到到别人家仓库去取货,肯定早早就在老欧那里登记了。他的登记信息是这样的,并且把他写在自己的一个特质名片上。

公司名:XiaoDExpress ---- Consumer Key

借到钥匙后需要做的事:1.在房间里四处转转
                               2.从里面拿点东西出来

老欧给的密码: Secret123 --Consumer Secret Key

今天的事就这样开始了。

快递公司的小迪早上刚上班,就接到了淘宝店主糖糖的电话,说要发两斤大白兔奶糖给广州的客人。

”铃铃铃。。。。“

小迪:”喂,这里是快递公司。“

糖糖:“早啊哥们,刚刚成了一单,给广州发2斤大白兔。”

小迪说:“货在哪儿啊?我去取。”

糖糖说:“货在京郊仓库呢,钥匙保管公司的老欧那里有钥匙,你找他要吧。”

小迪说:”好嘞,请好儿吧您呐“。

于是小迪首先给老欧钥匙保管公司的接待部(/oauth/request_token)打了个电话,告诉他的公司名(Consumer Key)和老欧当初给他的密码(Consumer Secret Key),说要临时借一下糖糖在京郊仓库的钥匙。

老欧钥匙保管公司的接待部根据小迪说的公司名和密码在账本上查了查,嗯,没问题,是小迪打来的电话,他的公司在我这儿登记过,密码也说对了,于是给了小迪一个小纸条(RequestToken),并告诉他找公司验证部(oauth/authorize)办手续。并且告诉小迪抓紧时间,小纸条只在1个小时内有效(Expiration)。

小迪拿着他的名片和接待部给的RequestToken找到了验证部(oauth/authorize)验证部说:“钥匙我做不了主,我得先问问钥匙的主人糖糖。” 于是老欧公司验证部给糖糖打了电话,老欧公司为了确保是糖糖本人接的电话,要求他说对了钥匙的特征(用户输入密码在OAuth 提供者的登录过程)。

老欧公司确定接电话的就是糖糖后告诉他说:“快递公司的小迪说要接你京郊仓库的钥匙,他要进去转转,还可能拿点东西出来,你借不借?”

糖糖:”没事,借给他吧,我们说好了。“

老欧公司验证部:”好,小迪,糖糖说借给你钥匙,你拿着这个纸条(oauth_verifier)到公司出纳部去领钥匙吧。不过赶紧去啊,这纸条就今天有效(Expiration)“。

快递公司的小迪拿着自己的名片和验证部给的小纸条(oauth_verifier)到了出纳部(/oauth/access_token),出纳部验证小迪的身份和验证部给的小纸条后,把糖糖在京郊仓库的钥匙给了小迪说:”你现在可以拿着糖糖的钥匙去他仓库里去了,不过要尽快,这是把临时钥匙,2天后就不能用了(Expiration)“。

于是,小迪拿着糖糖的临时钥匙到了京郊糖糖的仓库,取了2斤大白兔奶糖发出去了。

故事到这儿就算完满结束了。庆祝!

我理解的OAuth 1.0a 的验证过程的更多相关文章

  1. WP REST API: 设置和使用OAuth 1.0a Authentication(原文)

    In the previous part of the series, we set up basic HTTP authentication on the server by installing ...

  2. Spring Security 的登录密码验证过程 UsernamePasswordAuthenticationFilter

    认证过程如下 一.先判断请求(请求必须是post请求)地址是否为配置的 login-processing-url 值(默认/j_spring_security_check),如果不是,则放行,进入下一 ...

  3. [转]在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效

    该文原网址:http://www.cnblogs.com/xwgli/p/5487930.html 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效.   当访问 h ...

  4. C#发送邮件异常:根据验证过程,远程证书无效

    今天在做发送邮件功能时,开始用qq邮箱和163邮箱都可以正常发送,后再改用我公司的邮箱和smtp时竟然报错了. 异常提示-----"根据验证过程,远程证书无效",后来通过查询资料解 ...

  5. 架构验证过程发现非数据类型错误 validation found non-data type errors

    问题: infopath报一下错误 validation found non-data type errors 架构验证过程发现非数据类型错误 原因: 重复表字段在后台代码里要一一对应,否则报错. 错 ...

  6. Kerberos验证过程

    参考文献: How the Kerberos Version 5 Authentication Protocol Works: Logon and Authentication SQL Kerbero ...

  7. Spring Security 入门(3-11)Spring Security 的登录密码验证过程 UsernamePasswordAuthenticationFilter

    认证过程如下 一.先判断请求(请求必须是post请求)地址是否为配置的 login-processing-url 值(默认/j_spring_security_check),如果不是,则放行,进入下一 ...

  8. XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。" "根据验证过程,远程证书无效。"

    XmlDocument.Load(url)  url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系."   "根据验证过程, ...

  9. C#发送邮件异常:根据验证过程,远程证书无效,何解???

    /// <summary> /// 发送邮件 /// </summary> /// <param name="mailSubjct">邮件主题& ...

随机推荐

  1. java并发编程(3):ThreadLocal

    转载:http://www.cnblogs.com/dolphin0520/p/3920407.html 一. 对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有地 ...

  2. SQL Server代理(4/12):配置数据库邮件

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...

  3. Coreseek + Sphinx + Mysql + PHP构建中文检索引擎

    首先明确几个概念 Sphinx是开源的搜索引擎,它支持英文的全文检索.所以如果单独搭建Sphinx,你就已经可以使用全文索引了.但是往往我们要求的是中文索引,怎么做呢?国人提供了一个可供企业使用的,基 ...

  4. 基于HTML5的3D网络拓扑自动布局

    上篇将HT for Web的3D拓扑弹力布局的算法运行在Web Workers后台(http://www.hightopo.com/blog/70.html),这篇我们将进一步折腾,将算法运行到真正的 ...

  5. 利用Navigation Timing测量页面加载时间

    最近在看一本名为<web性能实践日志>的书籍,其中第十三章"网络计时"中介绍了一种比较新的计算页面各部分加载时间方法,这也是W3C Web性能工作小组正在做的事情,接下 ...

  6. HTML知识点01

    HTML基础知识回顾 1:ie是浏览器的一种,一般的浏览器只是用到了IE的内盒,知识将IE做了个外包. 2:书写HTML时要按照XML标准类书写.有开始就有结束. 3:HTML种属性单双引号都可以,也 ...

  7. Github的第三方验证

    Github的第三方验证 随着近年来网络安全越来越受到重视,对于用户认证和用户信息保存模块的开发也提升到了一个新的高度. 一般小型网站开发的时候,由于技术水平和时间成本有限,很有可能会开发出一些或大或 ...

  8. ajaxfileupload asp.net 的简单使用

    本人菜鸟,第一次写博客,不会排版,只是记录工作中常用的东西 ajaxfileupload.js源码: http://www.rczjp.cn/HTML/110420/20113620053635.ht ...

  9. UITextView 文本垂直居中

    var center=textView.Bounds.Size.Height - textView.ContentSize.Height; center = center < ? : cente ...

  10. OC基础数据类型-NSData-NSMutableData-NSString

    NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛.NSData创建后不可以再修改,NSMutableData可以再次修改. 1.NSStrin ...