OAuth2.0协议
简介
OAuth(Open Authorization),协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名和密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户的授权,因此,OAuth是安全的。
这些解释其实都是可以在网上搜索到的。为了解释的更加清楚,接下来博主结合实例绘图解释:

整个OAuth授权过程中,三者都获得了自己的便利。
用户可以不用注册帐号,可以直接使用关联帐号就可登录新的网站使用资源,且不用担心帐号失窃,因为这个授权过程是安全的。
慕课网可以更加轻易的获取用户量。
腾讯将海量的数据开放给第三方网站,既是为其他小企业做的贡献,也增大了自身的知名度。
版本
OAuth1.0发布于2007年末,存在严重安全漏洞。
OAuth2.0发布于2010年初,解决上一版本的安全漏洞,现被各大网站公司一直使用。
应用场景
1)QQ用户授权慕课网使用其QQ帐号相关信息。
2)获取授权后,在符合权限规则的情况下访问各种API。
3)淘宝帐号,可在支付宝,阿里云中使用。
总的来说,OAuth是某一独立系统,开放其用户资源给另一系统使用的协议。
实现过程(三个步骤)

步骤一:请求OAuth登录页面
Request Token URL,未授权的令牌请求服务地址。
慕课网请求QQ登录页面时使用的带有特定参数的URL。
例如,
https://graph.qq.com/oauth/...?...
&client_id=100490398&...
&redirect_uri=http://www.mukewang.com/...
第一行为QQ登录OAuth页面的地址。
第二行为一个唯一的站点ID,必须和预置服务器上的一致。
第三行为一个回调地址,必须和预置服务器上的一致。
步骤二:用户使用QQ号登录并授权
https://graph.qq.com/oauth/...?...
&client_id=100490398&...
&redirect_uri=http://www.mukewang.com/...
跳转到
http://www.mukewang.com/user/qqcallback?code=xxxxx....
慕课网服务器使用
$_GET['code'];
获取加密字符。
步骤三:返回登录结果
User Authorization URL,用户授权的令牌请求服务地址
为保证安全,确保code是合法服务器获得,没有被劫持,则需要合法接收服务器再发送一个请求(User Authorization URL)。
例如,用户QQ登录授权之后需要请求一个带有特定参数的URL。
https://xxx.qq.com/oauth/...?...
&client_id=100490398&...
&client_secret=xxxxxx&...
&code=xxxxx......
code在短期内会过期且只可使用一次,通常是10秒左右。基于安全考虑。
关于AccessToken
AccessToken,用户通过第三方应用访问OAuth接口的令牌,具有较长生命周期(10天半个月甚至更长)。如果AccessToken过期,可以重新登录授权,或在User Authorization URL中指定参数(刷新AccessToken的参数,各平台各有不同)"......&need_refresh_token=true&......"。
获取AccessToken就可以访问授权帐号的资源,例如,通过慕课网把自己喜欢的课程分享到QQ空间。
AccessToken与RefreshToken
RefreshToken也是有生命周期的,不过比AccessToken生命周期要长,各大平台不一样。

使用实例类比AccessToken

将返回的XML或JSON解析成我们想要的数据

以上是对OAuth2.0的学习与总结。
OAuth2.0协议的更多相关文章
- 第三方登录,一般都是遵循OAuth2.0协议。
1. QQ登录OAuth2.0协议开发流程 1.1 开发流程 申请接入,获取appid和appkey; 开发应用,设置协作者账号,上线之前只有协作者才能进行第三方登录 放置QQ登录按钮(这个自己可以用 ...
- 接口测试工具-Jmeter使用笔记(八:模拟OAuth2.0协议简化模式的请求)
背景 博主的主要工作是测试API,目前已经用Jmeter+Jenkins实现了项目中的接口自动化测试流程.但是马上要接手的项目,API应用的是OAuth2.0协议授权,并且采用的是简化模式(impli ...
- 使用OAuth2.0协议的github、QQ、weibo第三方登录接入总结
目录 第三方接入总结 OAuth2.0介绍 github OAuth2.0登录接入 国内第三方应用商SDK使用 微博SDK 腾讯QQ SDK passport.js插件使用 安装 相关中间件.路由 返 ...
- Oauth2.0协议曝漏洞 大量社交网站隐私或遭泄露
2014年是IT业界不平常的一年,XP停服.IE长老漏洞(秘狐)等等层出不穷,现在,社交网络也爆出惊天漏洞:Oauth2.0协议漏洞 继OpenSSL漏洞后,开源安全软件再曝安全漏洞.新加坡南洋理工大 ...
- 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议
概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入.CAS的强大在于,有官方的插件,可以支持其他的协议.本章节就让CAS Server怎么增加OAuth2.0的登录协议 ...
- 《OAuth2.0协议安全形式化分析-》----论文摘抄整理
---恢复内容开始--- 本篇论文发表在计算机工程与设计,感觉写的还是很有水准的.实验部分交代的比较清楚 本篇论文的创新点: 使用Scyther工具 主要是在 DY模型下面 形式化分析了 OAuth2 ...
- Spring Security 实战干货: 简单的认识 OAuth2.0 协议
1.前言 欢迎阅读 Spring Security 实战干货 系列文章 .OAuth2.0 是近几年比较流行的授权机制,对于普通用户来说可能每天你都在用它,我们经常使用的第三方登录大都基于 OAuth ...
- Oauth2.0 协议简介及 php实例代码
转自:http://www.dahouduan.com/2017/11/21/oauth2-php/ https://blog.csdn.net/halsonhe/article/details/81 ...
- 对OAuth2.0协议的理解和测试demo
1. 什么是OAuth OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. OAuth ...
- 理解OAuth2.0协议和授权机制
无论是自然资源还是互联网上的资源,需要控制使用权与被使用权,以保护资源的安全.合理的使用和有效的管控. 项目中,我们需要控制的是用户资源,既要保证有效用户的合理使用,又要防范非法用户的攻击.如此,如何 ...
随机推荐
- 查询DDOS攻击IP列表 grep -i
[root@xsx ~]# netstat -an|grep -i syn_recv|awk '{print $5}'|awk -F\: '{print $1}'|sort|uniq -c 1 149 ...
- 我的MySQL5.6免安装版配置过程
最近打算学习MySQL,第一步就是安装.下载到一个面安装版.解压到我的D盘的mysql目录. 弄了一个最简单的配置文件.目录中只有一个my-default.ini,基本没啥用.在网上弄了一个my.in ...
- 关于MFC监听器的相关了解
最近有个项目,所搭框架为了减少耦合,希望MainFrame中View不依赖于Mainframe,即MainFrame中含有view类而view中不会包含MainFrame的相关信息. 现在遇到一个问题 ...
- kinect学习笔记(三)——深度数据的提取
一.创建Console工程 二.添加kinect引用 里面用引用,打开后 选择然后OK. 三.编写代码(有附加注释) using System; using System.Collections.Ge ...
- Android横屏竖屏切换的问题
Android横屏竖屏切换的问题 http://blog.sina.com.cn/s/blog_77c632410101790w.html
- Loadrunner 关联 web_custom_request综合实例
Loadrunner 关联 web_custom_request综合实例 Loadrunner 关联web_custom_request,针对自带的订票系统的一个综合实例,相信看了本文大家对学习loa ...
- env
shell环境变量以及set,env,export的区别 原文链接 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量 包括的私有变量以及用户变量 ...
- 5.AsyncHttp、post
httpClient // 网络访问请求 new Thread(new Runnable() { @Override public void run() { String url = "ht ...
- parseFloat
parseFloat会把输入完整的数进行比较,不会比较中间数字.
- Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...