OAuth1.0及OAuth2.0认证机制解读

08/04/2015

早上看一同事在研究微信支付,用到的认证方式,我就推荐她先看看OAuth了,记得曾在某位仁兄的博客上看到的,写的很具体,抱歉已经记不住地址了,见谅哈。

一、OAuth1.0

在OAuth 1.0认证中会用到三个重要的Url:

第一个:Request Token Url,获取未授权的Token的Url;

第二个:User Authorization Url,请求用户对Token进行授权的Url;

第三个:Request Access Url,使用Token获取Access Token的Url。

第一步:网站通过Request Token Url向认证平台请求一个未授权的Token;

第二步:跳转至用户授权页面即User Authorization Url,提示用户进行登录,并进行授权,返回获得已授权的Token(通过回调地址获取相关参数,回调地址是请求时带过去的参数);

第三步:通过已授权的Token,向认证平台通过Request Access Url请求Access Token(数据令牌),返回后到这步整个认证流程就结束了。

最后,是通过数据令牌等参数,调用接口获取用户信息,可以根据接口文档,获取不同的接口信息。

 

二、OAuth2.0

第 一步:首先直接跳转至用户授权地址,即图示 Request User Url ,提示用户进行登录,并给予相关资源授权,得到唯一的Auth code,这里注意的是code只有10分钟的有效期,对于安全考虑,相对于OAuth 1.0省了一步获取临时的Token,并且有效期也进行了控制,比1.0认证简化了很多,并安全一些;

第二步:得到授权code后,这一步就是请求access token,通过 图示 Request access url ,生成得到数据Token;

第三步:通过Access Token请求OpenID,OpenID是用户在此平台的唯一标识,通过图示 Request info url 请求,然后得到OpenID;

第四步:通过第二步得到的数据Token、第三步得到的OpenID及相关API,进行请求,获取用户授权资源信息。