oauth2.0认证

来源:互联网 发布:qq飞车霹雳火数据 编辑:程序博客网 时间:2024/06/04 19:51

   OAUth的主要目的主要是为了给API授权提供一个统一的标准。优点在于不会提供用户名和密码给第三方应用。即第三方无需使用用户的用户名和密码就可以访问用户资源。

oauth2.0相对于oauth1.0来说更为安全。以新浪微博为例,oauth2.0授权流程如下:

OAUth认证一般可以抽象出三个对象,Server(service provider),client(consumer),user(resource owner)。对于新浪微博来说,微博是服务提供者,微博用户是他的服务对象,如果一个微博用户想要使用第三方应用,又不想把用户名和密码交与第三方应用。那么,就可以通过登录微博,给第三方应用授权的方式使用该应用。

定义app如何通过服务器认证这个过程就是OAUth协议的主要内容。对于新浪微博,OAUth认证的三个对象实例化为微博授权服务端,微博应用(app),微博用户。

OAUth认证定义的流程

1、当用户想使用一个应用时,appclient会向用户发起授权请求。

2、用户授权之后,appclient会得到一个授权码

3、appclient再拿着这个授权码跟授权服务器换取accesstoken.

4、appclient就可以用这个accesstoken访问微博apiserver,调用与该用户相关的接口。

从这个流程可以看到,OAUth2.0的优点:

1、OAUth不会使第三方网站触到用户的用户名和密码。

2、授权后的http通信中也不会涉及到用户的用户信息,取而代之的是数字签名和访问令牌(accestoken)。这样的话,即使截取到数据包,也无法还原出用户的数据信息。