oAuth 使得第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权

OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth是Open Authorization的简写。http://baike.baidu.com/link?url=dbhAbTjRKhqT4FCMbbnYvLamqZ4slI4HucF2QuP2-OHpbsQVyAwYXDZHrFfFW5jbBeTq5hr3YRAUnjXpvh86ya http://blog.jobbole.com/49211/OAuth的机制原理讲解及开发流程OAuth的原理oauth_developer_1(流程图)我在图上分了四个步骤,下面是四步的讲解:通过这个原理图示及讲解(图是手工制作,有点草),相信大家都了解了OAuth这个原理的一个基本流程,若看不明白,你可以不用学习制作OAuth了,开个玩笑。(这步后,大家知道什么原理了,但还是无法知道OAuth究竟是如何实现认证的,别急,接着往下看)3、OAuth 1.0的认证流程在OAuth 1.0认证中会用到三个重要的Url:第一个:Request Token Url,获取未授权的Token的Url;第二个:User Authorization Url,请求用户对Token进行授权的Url;第三个:Request Access Url,使用Token获取Access Token的Url。上面是认证流程中用到的三个Url,在下面的流程示意图中会体现到,这是我讲解OAuth幻灯片的一页,直接截图下来进行讲解:oauth_developer_2第一步:网站向认证平台请求一个未授权的Token,这个Request Token Url是前面说的第一个Url;第二步:跳转至用户授权页面,提示用户进行登录,并进行授权,返回获得已授权的Token,用到的User Authorization Url是前面说的第二个Url;第三步:通过已授权的Token,向认证平台请求Access Token(数据令牌),用到的Request Access Url是前面说的第三个Url,返回后到这步整个认证流程就结束了,最后一步,是通过数据令牌等参数,调用接口获取用户信息,不完全算认证的流程。(我喜欢简洁明了,认证流程就是这样,相信通过图示及讲解都能明白,若有不明白之处请留言)4.1、请求未授权的临时Token第一个Url请求参数包含如下内容:(红色为必填、绿色为选填)返回的参数有:oauth_token(临时令牌)、oauth_token_secret(临时密钥对应的令牌)第二个Url需要传递的参数为: 参数含义 oauth_consumer_key 分配给网站的appid。 oauth_token 上一步中,得到的oauth_token oauth_callback 回调地址,即登录并授权后返回到你网站上的地址。   返回的参数有:  4.2、请求Access Token数据令牌上一步中,我们写了一个回调地址,并顺利得到一些参数,下面就是拿这些参数来进行下一步操作,首先,得到数据令牌(只有拿到数据令牌才可以调用接口获取用户信息)。Url请求参数包含如下内容:  返回的参数如下: 参数含义 oauth_token 具有访问权限的access_token oauth_token_secret access_token的密钥 openid 在第一步和本步骤中都返回了openid。使用本步骤返回的openid,更为安全 timestamp openid的时间戳 oauth_signature 针对openid的签名值   4.3、通过Access token(数据令牌)调用API接口,获取用户授权资源5、OAuth2.0的认证流程在OAuth2.0的处理流程,主要分为以下四个步骤:1)得到授权码code2)获取access token3)通过access token,获取OpenID4)通过access token及OpenID调用API,获取用户授权信息上面是流程的大概四个步骤,在下面的流程示意图中会得到体现,这是我制作的一个幻灯片的流程图(文章最后会附上制作的OAuth幻灯片分享给大家),这里就直接截图下来进行讲解:oauth2.0_developer_pic3第一步:首先直接跳转至用户授权地址,即图示 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,进行请求,获取用户授权资源信息。(我喜欢简洁明了,OAuth2.0认证流程就是这样,相信通过图示及讲解都能明白,若有不明白之处请留言)

相关内容推荐