oidc hybrid flow 与另外两种模式的异同
很多学习identityserver的文章都没有解释清楚oidc hybrid混合模式的含义。本文将解释hybrid模式与另外两种模式的主要区别。
我们先看一下一手文档:
https://openid.net/specs/openid-connect-core-1_0.html



code , impact很多文章已经讲的很清楚了,这里我们不赘述了。
hybrid和code一样都有8个步骤,大部分步骤也是相同的。最核心的区别在于第5步。

code是一定会返回的,access_token和id_token的返回依据 response_type 参数决定。
在response_type= code id_token token 时,Authorization Endpoint 会同时返回access_token和id_token,这其实就变成了impact模式。
在response_type= code id_token 时,你可以要求它仅i返回d_token , 再通过code去请求access_token这就变成了code模式,并返回了id_token。
同理你也可以自行组合,例如
在response_type= code token时,仅返回access_token不要id_token,这也是impact,不过去掉了id_token。
这个协议时让返回根据你自己的需要去自主选择的。
补充:
hybrid还有一些特性的处理与impact相同如: Redirect URI Fragment Handling、 Access Token Validation、 ID Token Validation
参考:
https://www.cnblogs.com/stulzq/p/7833480.html
oidc hybrid flow 与另外两种模式的异同的更多相关文章
- 协议中UART的两种模式 【转】
转自:http://wjf88223.blog.163.com/blog/static/3516800120104179327286/ ^^…… 协议栈中UART有两种模式:1.中断2.DMA 对于这 ...
- Windows2003 IIS6.0支持32位和64位两种模式的设置方法
IIS 6.0 可支持 32 位和 64 位两种模式.但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式.ASP.NET 1.1 只在 32 位模式下运行.而 ASP ...
- 【转】Reactor与Proactor两种模式区别
转自:http://www.cnblogs.com/cbscan/articles/2107494.html 两种IO多路复用方案:Reactor and Proactor 一般情况下,I/O 复用机 ...
- ACE_linux:Reactor与Proactor两种模式的区别
一.概念: Reactor与Proactor两种模式的区别.这里我们只关注read操作,因为write操作也是差不多的.下面是Reactor的做法: 某个事件处理器宣称它对某个socket上的读事件很 ...
- JSP中两种模式的总结
运用JSP/Servlet实现的Web动态交互,主要采用: 模式一:JSP+JavaBean 链接:http://wxmimperio.coding.io/?p=155 模式二;JSP+Servlet ...
- Doctype 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
Doctype:(Document Type)文档类型,它位于文档中最前面的位置,处于标签之前.如果你想制作符合标准的页面,一个必不可少的关键组成部分就是DOCTYPE的声明.确定了正确的Doctyp ...
- Android Studio的两种模式及签名配置
我们使用Android Studio 运行我们的app,无非两种模式:debug和release模式. debug模式 debug模式使用一个默认的debug.keystore进行签名. 这个默认签名 ...
- vue-router的两种模式的区别
众所周知,vue-router有两种模式,hash模式和history模式,这里来谈谈两者的区别. ### hash模式 hash模式背后的原理是`onhashchange`事件,可以在`window ...
- Doctype的作用?严格模式与混合模式,如何触发者这两种模式,区分它们有何意义?
Doctype作用?严格模式与混合模式,如何触发者这两种模式,区分它们有何意义? 1.1 Doctype作用 <!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该 ...
随机推荐
- shell 得到当前目录路径
shell 得到当前目录路径 cd "$(dirname $0)" project=$(pwd | cut -d / -f ) echo 'project: '$project c ...
- np.array()和np.dot()的区别
1.生成数组的方式不同 2.乘法计算方式不同 array生成数组,np.dot()表示矩阵乘积,(*)号或np.multiply()表示点乘 mat生成数组,(*)和np.dot()表示矩阵相乘,点乘 ...
- 图解Numpy的tile函数
Numpy的tile(A, reps)函数,就是将原矩阵横向.纵向地复制.tile是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来. 举个例子,原矩阵: 横向铺展: 纵向铺展: 横向铺 ...
- Monday
ssm项目 设计模式:上周(观察者模式,策略模式)
- .net core 反射的介绍与使用
1. 概述反射 通过反射可以提供类型信息,从而使得我们开发人员在运行时能够利用这些信息构造和使用对象. 反射机制允许程序在执行过程中动态地添加各种功能. 2. Type类的介绍 是BCL(基 ...
- llinux/重启/用户切换/注销
一.指令 shutdown命令 shutdown -h now //立即关机 shutdown -h 2 //分钟后关机 shutdown -r now //立即重启 shutdown -r 1 // ...
- thymeleaf Exception processing template "xxx": Exception parsing document: template="xxx", line 6 - column 3报错解决的几种方法
我是在SpringBoot项目使用Thymeleaf作为模板引擎时报的错误 controller代码非常简单,如下所示: @RequestMapping("/abc") publi ...
- Cesium专栏-空间分析之地形等高线(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- IOS-dequeueReusableCellWithIdentifier的应用
这是个uitableviewcell重用的函数.当一个列表中的布局相同只是数据不同时,我们可以重用我们的cell,不需要再重复创建.上面代码的意思是,先根据identifier去重用列表中找有没有可以 ...
- URL Schemes of iOS
About prefs:root=General&path=About Accessibility prefs:root=General&path=ACCESSIBILITY Airp ...