首页 > 代码库 > oauth2.0的个人见解

oauth2.0的个人见解

    文章开始之前,先以一个小例子开始。

。。。为了避免文章开头的啰嗦,先说下脉络:概括起来,就两句话:王五要知道的张三的信息,李四知道张三的信息,王五问张三,李四得到张三的同意后,告诉了王五张三的信息。

至此,王五顺利拿到张三的信息。

例子的详细情况及其前提如下:

如下:有3个人:张三,李四,和王五。其中张三和李四的关系非常好。张三可以将很多的隐私信息都告诉李四,包括银行卡号和密码。另外,李四也确实够兄弟,李四承诺,在没有得到张三的同意,李四就是被打死也不会跟第三个人说。着重声明下:这里是个重点,在没有得到张三的同意的情况下。另外,张三和王五的关系,也挺好的。但是,一旦王五想知道张三的隐私信息,张三不会亲口跟王五说,张三只会跟王五说,你问李四吧,他也知道的,要是你真的想知道,你叫李四跟我说一声就可以了。~~~ (别紧张,就是这样的)。说到李四和王五的关系,也很好。李四信得过王五,某天,王五问道关于张三的信息,但是李四说,我跟张三承诺过,没得到他的同意,我是不会说的。某天,张三想要王五知道他的信息。好了,这时候,王五就问李四,王五对李四说,你可以告诉我了,不信,你去问张三去。这时候,李四得到张三的同意后,就和王五共享了张三的信息。  ===例子结束。

以上简单的例子,可以简单地说明了oath的大体思路。梳理下其中的关键点:

1:张三没有直接告诉王五自己的信息。

2:王五可以知道张三的信息。

3:李四信任王五

4:李四可以把张三的信息分享给王五,最重要的前提:!!!李四要得到张三的同意。

在开发中的一个例子:

微信公众平台中,有一个服务号。在该服务号中可以有许多需要根据微信使用者的信息实现的操作,比如:登陆。对比上面的例子。对应的角色如下:  张三对应着微信使用者。李四对应着微信。王五对应着微信服务号下面的系统。

简单的  “使用微信号登陆”:具体操作如下:(下面,将微信服务号下面的系统成为微系统。)

1.微信用户要登陆到微信服务号下面的系统,但是,微系统不需要微信用户输入微信号,密码等。微系统拼接了一个微信事先指定好格式的链接,

2.微信用户点击此链接,请求到了微信服务器,相当于是授权微系统可以允许该微系统使用该用户的微信信息。

3.微信将一个码值发送给微服务器。于是微系统根据这个码值向微信服务器发送请求,从而获得用户的标识,和一个令牌。从而,微系统可以在这个令牌有效的前提下,凭着用户的标识从微信服务器获取用户的信息。

名词说明:

码值:在微信公众平台开发中称为code

令牌:在微信公众平台开发中称为accessToken

用户的标识:在微信公众开发平台中称为openId

以上即为oauth的认证过程。

特性如下:

(1). 简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与使用;

(2). 安全:没有涉及到用户密钥等信息,更安全更灵活。安全一说,得看具体的实现,重点在于:主服务平台,即使在得到用户的授权之后,可以允许第三方系统共享多少信息。

(3). 开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;


最后:贴上oauth的官网:相信,有了大概的了解之后:其官网说的,就好理解多了。

http://oauth.net/2/

以上。

如有不妥之处,望轻拍。

                                                                                                                                    

                                                                                                                                小肖

                                                                                                                                2014.09.26











oauth2.0的个人见解