OAuth简介

来源:互联网 发布:番茄能生吃吗 知乎 编辑:程序博客网 时间:2024/06/02 11:39

1、OAuth的简述

  OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的。

OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。"客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。


2、OAuth 1.0的认证流程

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

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

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

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


第一步:网站向认证平台请求一个未授权的Token,这个Request Token Url是前面说的第一个Url;

  第二步:跳转至用户授权页面,提示用户进行登录,并进行授权,返回获得已授权的Token,用到的User Authorization Url是前面说的第二个Url;

  第三步:通过已授权的Token,向认证平台请求Access Token(数据令牌),用到的Request Access Url是前面说的第三个Url,返回后到这步整个认证流程就结束了,最后一步,是通过数据令牌等参数,调用接口获取用户信息,不完全算认证的流程。


3、Qzone OAuth总体处理流程

起点: 用户在网站上点击“QQ登录”标识,使用QQ帐号登录网站

Step 1. 网站向Qzone发送request,请求临时token。

Step 2. Qzone接受请求,返回未授权的临时token。

Step 3. 网站引导用户到QQ登录窗口;用户输入用户名和密码,点击“登录”按钮后,网站向Qzone发送request,请求已授权的临时token。

Step 4. Qzone获取用户登录态;引导用户授权允许网站其QQ空间连接(仅在用户初次使用“QQ登录”登录网站时需要);返回已授权的临时token,并引导用户跳转回网站(该回调地址已在step3的请求中指定)。

Step 5. 网站向Qzone发送request,请求具有Qzone访问权限的access_token。

Step 6. Qzone接受请求,返回具有Qzone访问权限的access_token。 

注:在step6和step7之间,网站可以将用户的QQ号码与网站帐号绑定。这一步不是必须的,一般来说该步骤仅针对已经有了自己帐号体系的网站。

Step 7. 网站调用QQ登录OpenAPI向Qzone发送request,请求访问或修改Qzone受保护的资源(例如用户资料,日志,相册,说说等信息)。

终点: Qzone接受请求,返回step7中请求的资源或执行对资源的修改。 




4、参考文献

http://kb.cnblogs.com/page/189153/

http://wiki.open.qq.com/wiki/website/Qzone_OAuth_1.0%E8%AE%A4%E8%AF%81%E7%AE%80%E4%BB%8B

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html






0 0
原创粉丝点击