我理解的OAuth 1.0a 的验证过程
故事梗概:
淘宝店主糖糖在京郊仓库存了一批大白兔奶糖,为了防止仓库钥匙被偷把仓库的钥匙交给了专业的钥匙保管员公司。 糖糖卖了一斤大白兔需要快递公司的小迪送货。快递员小迪找钥匙保管公司借钥匙,然后去京郊仓库去取货。
出场人物:
快递公司的小迪 -------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 的验证过程的更多相关文章
- 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 ...
- Spring Security 的登录密码验证过程 UsernamePasswordAuthenticationFilter
认证过程如下 一.先判断请求(请求必须是post请求)地址是否为配置的 login-processing-url 值(默认/j_spring_security_check),如果不是,则放行,进入下一 ...
- [转]在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效
该文原网址:http://www.cnblogs.com/xwgli/p/5487930.html 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效. 当访问 h ...
- C#发送邮件异常:根据验证过程,远程证书无效
今天在做发送邮件功能时,开始用qq邮箱和163邮箱都可以正常发送,后再改用我公司的邮箱和smtp时竟然报错了. 异常提示-----"根据验证过程,远程证书无效",后来通过查询资料解 ...
- 架构验证过程发现非数据类型错误 validation found non-data type errors
问题: infopath报一下错误 validation found non-data type errors 架构验证过程发现非数据类型错误 原因: 重复表字段在后台代码里要一一对应,否则报错. 错 ...
- Kerberos验证过程
参考文献: How the Kerberos Version 5 Authentication Protocol Works: Logon and Authentication SQL Kerbero ...
- Spring Security 入门(3-11)Spring Security 的登录密码验证过程 UsernamePasswordAuthenticationFilter
认证过程如下 一.先判断请求(请求必须是post请求)地址是否为配置的 login-processing-url 值(默认/j_spring_security_check),如果不是,则放行,进入下一 ...
- XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。" "根据验证过程,远程证书无效。"
XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系." "根据验证过程, ...
- C#发送邮件异常:根据验证过程,远程证书无效,何解???
/// <summary> /// 发送邮件 /// </summary> /// <param name="mailSubjct">邮件主题& ...
随机推荐
- AngularJS in Action读书笔记4(实战篇)——创建Statistic模块
个人感觉<Angularjs in action>这本书写的很好,很流畅,循序渐进,深入浅出,关键是结合了一个托管于Github上的实例讲解的,有代码可查,对于初学者应该是个不错的途径.( ...
- Eclipse快捷键大全(转载)
一.实用类快捷键 1 常用熟悉的快捷键 CTRL+C(复制).CTRL+X(剪切).CTRL+Z(撤销).CTRL+F(查找).CTRL+H(搜索文件或字符串).CTRL+Y(重做).CTRL+/(双 ...
- TextView显示html文件中的图片
fromHtml还有另一个重构:fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 而I ...
- Android学习笔记之短信验证码的获取和读取
PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...
- Android聚合广告AFP的对接系统设计
工作需要,要对接阿里妈妈的广告聚合平台,简称AFP.对于一般的应用而言,想要流量变现,广告是显而易见的手段,尤其是在中国,打开一个千万级别的用户,肯定有某个地方是有对接广告的,只不过明不明显而已. 阿 ...
- elasticsearch 文档
elasticsearch 文档 文档格式 索引中最基本的单元叫做文档 document. 在es中文档的示例如下: { "_index": "questions&quo ...
- SQL 聚合函数
SQL聚合函数 MAX---最大值 MIN--最小值 AVG--平均值 SUM--求和 COUNT--记录的条数 EXample: --从MyStudent表中查询最大年龄,最小年龄,平均年龄,年龄的 ...
- The service cannot be activated because it does not support ASP.NET compatibility
刚刚在ASP.NET创建一个Service,在运行时,它即显示异常: The service cannot be activated because it does not support ASP.N ...
- [DBW]js获取当前时间(昨天、今天、明天)
开发过程中某些前台页面的时间控件我们需要给默认当前时间,jquery可以轻松的帮我们实现,代码如下 1 //昨天的时间 2 var day1 = new Date(); 3 day1.setTime( ...
- EditText html 出现提示 This text field does not specify an inputType or a hint
1 <EditText 2 android:layout_width="fill_parent" 3 android:layout_height="wrap_c ...