故事梗概:

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

出场人物:

快递公司的小迪 -------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. Azure ARM (10) ARM模式下的虚拟机和Classic Model虚拟机的区别

    <Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 请读者注意,在Azure ARM平台,有两种虚拟机模式:经典虚拟机和ARM虚拟机 A ...

  2. Azure PowerShell (1) PowerShell整理

    <Windows Azure Platform 系列文章目录> 把之前Azure ASM的PowerShell都整理好了. https://github.com/leizhang1984/ ...

  3. QT学习笔记3

    对话框 新建了一个对话框,在新建项目选择类型时是Dialog即可. 添加的代码如下,注意QCheckBox 并没有添加头文件定义,只是加了类的前向声明.因为我们仅仅使用的是指针,并不涉及到这些类的函数 ...

  4. MVC中的默认Model绑定者DefaultModelBinder

    一.题外话 接续上一篇: MVC中Action参数绑定的过程 public IModelBinder DefaultBinder { get { if (this._defaultBinder == ...

  5. Data URL简介及Data URL的利弊

    之前写过一篇“漫谈前端优化”的文章,里面提到过DataUrl,粗鲁的描述了下,感觉不甚详焉,所以这几天也总结了这方面的知识,参考一些资料,补充一篇文章在这里,对这方面的资料来说,也是一种强化记忆应用: ...

  6. Node.js系列基础学习-----回调函数,异步

    Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都 ...

  7. C++ - unordered_map 源码解析

    转自:http://zrj.me/archives/1248,转载请注明.(分析得不错) 主要尝试回答下面几个问题: 一般情况下,使用 hash 结构,需要有桶的概念,那么 unordered_map ...

  8. 我的vim配置文件

    强烈拥护开源精神,高举开源大旗,今天我就分享下我自己结合网上还有自己实际使用配的vimrc,可以给各位参考下,不要见笑,具体说明我在rc里写的也很详细,可以具体看下,也希望可以借这个机会能多认识认识几 ...

  9. Open Audio Library

    Open Audio Library OPENAL是一个音效API,负责系统和声卡之间的沟通,几乎没有一个API能达到她的全部潜能.由 Creative公司.nvidia公司 和 Loki工作室 发起 ...

  10. AES加密类

    代码: using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace ...