oauth2学习
oauth2
- 生词: - 授权码模式(authorization code)
- 简化模式(implicit)
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)
 
- 问题: - 分享目标:大致了解oauth的运行流程,及如何使用oauth(代码实现)。
- oauth是什么?
- oauth是目前最流行的一套授权机制标准。
 
- oauth的应用场景?
- 假设一个例子:
- 有一个在线读取pdf的网站。极速PDF在线阅读
- 我们想要在线阅读百度云存储的pdf文档,那么就需要让极速pdf来读取百度云存储的pdf,那么极速pdf是怎样获取到用户的授权呢?
- 传统的做法是我们将百度云账号密码告诉极速pdf,这样后者就可以进行读取pdf文档了
- 这样的做法会有几个严重的缺点
- 极速pdf为了后续的在线阅读服务可能会保存我们的百度云账号密码
- 极速pdf会读取我们百度云所有资料。
- 只有我们修改密码后才能控制极速pdf的权利,于此同时我们用的其他第三方应用也都失效了
 
- 这时由国外的几位大佬共同发起的,为API访问授权提供一套标准:Oauth
 
 
- 假设一个例子:
 
- oauth2.0 运行流程  
- A:第三方请求用户获取授权 - B:用户同意授权 - C:第三方带着用户授权向认证服务器获取token - D:认证服务器校验用户授权后,返回token - E:带着token请求资源服务器 - F:资源服务器校验token 后返回所需资源 
 
- 授权码模式(authorization code)  
- 第三方服务跟用户索要授权
- 用户给予授权
- 浏览器拿着加密的用户信息和回调地址给认证服务器
- 认证服务器校验用户信息和回调地址后返回授权码。
- 第三方应用再根据授权码和回调地址请求认证服务器
- 认证服务器校验后返回token
 
 
- 简化模式(implicit grant type)  
- 执行流程:
- 获取用户授权
- 将用户client信息和回调地址发送到认证服务器
- 认证服务器校验成功后返回重定向地址和token对象的哈希值
- 浏览器带着重定向地址向资源服务器发出请求
- 资源服务器返回一个页面,根据hash值获取token信息
 
 
- 密码模式(Resource Owner Password Credentials Grant)  
- 执行流程
- 用户向客户端提供账号密码
- 客户端用账号密码请求认证服务器
- 认证服务器校验成功后返回token
 
 
- 客户端模式(Client Credentials Grant)  
- 第三方服务带上client信息向认证服务器请求获取token
- 认证服务器校验client信息后返回token 
 
oauth2学习的更多相关文章
- OAuth2学习及DotNetOpenAuth部分源码研究
		OAuth2学习及DotNetOpenAuth部分源码研究 在上篇文章中我研究了OpenId及DotNetOpenAuth的相关应用,这一篇继续研究OAuth2. 一.什么是OAuth2 OAuth是 ... 
- OAuth2学习中的一些高频问题的QA
		关于OAuth2相信很多初学者都有一些疑问,胖哥将这些疑问一一收集了起来做成了QA,或许能帮助学习者. OAuth2相关的QA Q:OAuth2 的一些常用场景? A: OAuth2主要用于API授权 ... 
- Spring Security OAuth2学习
		什么是 oAuth oAuth 协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需 ... 
- OAuth2学习笔记
		参考:https://aaronparecki.com/oauth-2-simplified/ 1.角色定义 应用程序(客户) 需要获取用户的账号信息,获得相关权限. API服务器 资源服务器就是AP ... 
- 使用DotNetOpenAuth搭建OAuth2.0授权框架
		标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0. ... 
- DotNetOpenAuth搭建OAuth2.0
		使用DotNetOpenAuth搭建OAuth2.0授权框架 标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物 ... 
- C#搭建Oauth2.0认证流程以及代码示例
		我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1...0a还是2.,单看版本号就 ... 
- java技术
		线程池的原理及实现:https://blog.csdn.net/hsuxu/article/details/8985931 Java高级工程师面试题总结及参考答案:https://www.cnblog ... 
- OAuth2.0学习(1-12)开源的OAuth2.0项目和比较
		OAuth2.0学习(2-1)OAuth的开源项目 1.开源项目列表 http://www.oschina.net/project/tag/307/oauth?lang=19&sort=t ... 
随机推荐
- vue配置域名访问
			vue配置域名访问其实很简单,新建一个vue的项目,不废话,直接上截图 红色框住的两行就是设置访问的域名以及端口,默认是host: localhost port: 8080 像这样修改之后,重启项目, ... 
- phpcms列表分页ajax加载更多
			1.在phpcms\modules\content\index.php文件中添加以下函数: /*列表分页ajax加载更多*/ public function homeajaxlist() { if( ... 
- 基于dvwa环境下级别为low的SQL手工注入教程
			基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这 ... 
- 【xinsir】githook之precommit分享
			钩子类型 使用node编写githook,以pre-commit为例: 1.在项目下配置自动生成pre-commit文件,一般可以在启动项目的脚本下添加: modifyPreCommit: funct ... 
- eclipse 从git取项目,导入为maven项目,新加的方法,报加载主类错误
			eclipse 从git取项目,导入为maven项目,新加的方法,报加载主类错误 具体描述: 整体编译能够编译成功,但新加一个java,里面创建一个main方法,运行时,报无法加载主类的错误, 整体编 ... 
- [HDU 5293]Tree chain problem(树形dp+树链剖分)
			[HDU 5293]Tree chain problem(树形dp+树链剖分) 题面 在一棵树中,给出若干条链和链的权值,求选取不相交的链使得权值和最大. 分析 考虑树形dp,dp[x]表示以x为子树 ... 
- springcloud费话之Eureka接口调用(feign)
			目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ... 
- JavaScript设计模式-组合模式(表单应用实现)
			书读百遍其义自见 <JavaScript设计模式>一书组合模式在表单中应用,我问你答答案. 注:小编自己根据书中的栗子码的答案,如有错误,请留言斧正. 另:如有转载请注明出处,谢谢啦 &l ... 
- setter getter 方法
			MRC下setter.getter方法写法.重写dealloc方法 @interface People : NSObject @property (nonatomic,strong) NSString ... 
- 八核浮点型DSP的双千兆网接口设计方案
			千兆网络接口具有数据传输速率快.连接方便.可以即插即用的优点,使得其应用较为广泛.随着电子技术和处理器的发展,很多应用场合的数据通信速率超过千兆网口的实际传输速率.例如,在A/D采样中,需要直接存储A ... 
