我理解的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斤大白兔奶糖发出去了。

 

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

 


Related Posts Plugin for WordPress, Blogger...