授权方式2-简化模式(implicit grant type)

简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了"授权码"这个步骤,因此得名。所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。

它的步骤如下:

(A)客户端将用户导向认证服务器。

(B)用户决定是否给于客户端授权。

(C)假设用户给予授权,认证服务器将用户导向客户端指定的"重定向URI",并在URI的Hash部分包含了访问令牌。

(D)浏览器向资源服务器发出请求,其中不包括上一步收到的Hash值。

(E)资源服务器返回一个网页,其中包含的代码可以获取Hash值中的令牌。

(F)浏览器执行上一步获得的脚本,提取出令牌。

(G)浏览器将令牌发给客户端。

下面是上面这些步骤所需要的参数。

A步骤中,客户端发出的HTTP请求,包含以下参数:

response_type:表示授权类型,此处的值固定为"token",必选项。

client_id:表示客户端的ID,必选项。

redirect_uri:表示重定向的URI,可选项。

scope:表示权限范围,可选项。

state:表示客户端的当前状态,可以指定任意值,认证服务器会原封不动地返回这个值。

下面是一个例子。

GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz

&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1

Host: server.example.com

C步骤中,认证服务器回应客户端的URI,包含以下参数:

access_token:表示访问令牌,必选项。

token_type:表示令牌类型,该值大小写不敏感,必选项。

expires_in:表示过期时间,单位为秒。如果省略该参数,必须其他方式设置过期时间。

scope:表示权限范围,如果与客户端申请的范围一致,此项可省略。

state:如果客户端的请求中包含这个参数,认证服务器的回应也必须一模一样包含这个参数。

下面是一个例子。

HTTP/1.1 302 Found

Location: http://example.com/cb#access_token=2YotnFZFEjr1zCsicMWpAA

&state=xyz&token_type=example&expires_in=3600

在上面的例子中,认证服务器用HTTP头信息的Location栏,指定浏览器重定向的网址。注意,在这个网址的Hash部分包含了令牌。

根据上面的D步骤,下一步浏览器会访问Location指定的网址,但是Hash部分不会发送。接下来的E步骤,服务提供商的资源服务器发送过来的代码,会提取出Hash中的令牌。

OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)

授权方式3-密码模式(Resource Owner Password Credentials Grant) 密码模式(Resource Owner Password Credentials Grant ...

OAuth2.0学习(1-12)开源的OAuth2.0项目和比较

OAuth2.0学习(2-1)OAuth的开源项目   1.开源项目列表 http://www.oschina.net/project/tag/307/oauth?lang=19&sort=t ...

OAuth2.0学习(1-11)新浪开放平台微博认证-使用OAuth2.0调用微博的开放API

使用OAuth2.0调用API 使用OAuth2.0调用API接口有两种方式: 1. 直接使用参数,传递参数名为 access_token URL 1 https://api.weibo.com/2/ ...

OAuth2.0学习(1-3)OAuth2.0的参与者和流程

OAuth(开放授权)是一个开放标准.允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息.而这种授权无需将用户提供用户名和密码提供给该第三方网站. OAuth允许用户提供一个令牌给第 ...

OAuth2.0学习(1-8) 授权方式五之Access_Token令牌过期更新

OAuth2.0的Access_Token令牌过期更新 如果用户访问的时候,客户端的"访问令牌"已经过期,则需要使用"更新令牌"申请一个新的访问令牌. 客户端发 ...

OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)

授权方式4-客户端模式(Client Credentials Grant) 客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提 ...

OAuth2.0学习(1-4)授权方式1-授权码模式(authorization code)

参与者列表: (1) Third-party application:第三方应用程序,又称客户端(client),如:"云冲印".社交应用. (2)HTTP service:HTT ...

OAuth2.0学习(2-1)Spring Security OAuth2.0 开发指南

开发指南:http://www.cnblogs.com/xingxueliao/p/5911292.html Spring OAuth2.0 提供者实现原理: Spring OAuth2.0提供者实际 ...

OAuth2.0学习(1-1)OAuth2.0是什么?

目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题 OAuth就是用于为第三方应用授权访问用户的资源应用的. 目前有OAuth1. ...

随机推荐

java timer 执行任务

1. 建立timer import java.util.Timer; import java.util.TimerTask; public class Start { public class Sta ...

什么是co-training

首先先认识下什么是co-training: 在计算机视觉中,我们都知道训练一个分类器的时候,我们需要两类样本,分别是正样本和负样本.监督训练又可以成为off-line training,就是提前准备好 ...

寒假学习unity的第一天

1.在Assert中创建材质Material,可以为物体附上材质 2.实例化命令Instantiate(要生成的物体,生成的位置,生成物体的选择角度) 3.检测鼠标左键 if(Inhibitor.Ge ...

[原]Django调试工具--django-debug-toolbar

请摒弃简单粗暴的print --马云 我比较习惯在windows中安装pycharm开发,项目部署在虚拟机中,在本地浏览器中查看效果,这种方式在调试上会有点麻烦,django-debug-toolba ...

Minimum Inversion Number(归并排序)

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

hibernate增删改查

-----------增加--------- public void insertUsers(String userName,String userPwd) { Users u=new Users() ...

项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作

无监控,不运维.好了,废话不多说,下面都是干货. 警告:流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html ...

java中类的加载过程和对象的创建过程

1.类加载过程 首先,jvm在执行时,遇到一个新的类,会先去内存的方法区中去寻找该类的.class文件,如果找到了就直接运行,如果没有找到,则会去硬盘中去寻找该类的.class文件,并将该类文件加载到 ...

swoole异步群发模板消息

1.用的是TP5.1的框架,swoole分成一个客户端发送接收消息,一个服务器负责处理信息 服务端代码,服务器要先安装swoole拓展,用 php server.php 启动进程监听 <?php ...

typedef struct bit0 &colon; 1

这句话定义了一个位域,bit0是该位域的域名,而且bit0只占用一个位.位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.为了节省存储空间,并使处理简便,C语言提供了一种 ...

oauth2.0 php简化模式,OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)相关推荐

  1. OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)

    授权方式3-密码模式(Resource Owner Password Credentials Grant) 密码模式(Resource Owner Password Credentials Grant ...

  2. java装饰者模式服装搭配,学习、探究Java设计模式——装饰者模式

    定义 装饰者模式:在不改变原类文件以及不使用继承的情况下,动态地将责任附加到对象上,从而实现动态拓展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 设计原则 要使用装饰者模式, ...

  3. apache php 工作模式,PHP Apache中两种工作方式区别(CGI模式、Apache 模块DLL)

    搜索热词 对PHP在Apache中两种工作方式的区别(CGI模式.Apache 模块DLL)感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! Windows 下有两种方法使 ...

  4. gateway oauth2 对称加密_SpringCloud(六) oauth2认证中心(单点登陆)

    1.介绍 在Spring Cloud需要使用OAUTH2来实现多个微服务的统一认证授权,通过向OAUTH服务发送某个类型的grant type进行集中认证和授权,从而获得access_token,而这 ...

  5. oauth2四种授权方式小结

    序 本文主要小结一下oauth2的四种模式的特点和适用场景. 四种授权方式 OAuth 2.0定义了四种授权方式. 密码模式(resource owner password credentials) ...

  6. OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)

    授权方式4-客户端模式(Client Credentials Grant) 客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提 ...

  7. 一口气说出 OAuth2.0 的四种授权方式

    上周我的自研开源项目开始破土动工了,<开源项目迈出第一步,10 选 1?页面模板成了第一个绊脚石 > ,密谋很久才付诸行动,做这个的初衷就是不想让自己太安稳,技术这条路不进步就等于后退,必 ...

  8. OAuth2.0(及OIDC 1.0)选型建议及SSO、SLO方案

    目录 1. 关于认证 2. OAuth 2.0 3. OIDC 1.0 4. OIDC选型建议 4.1 PKCE 5. SSO方案 5.1 SSO SPA 5.2 SSO WEB 6. SLO方案 6 ...

  9. OAuth2.0的四种授权方式

    在OAuth2.0中,OAuth2.0 provider负责保护暴露在外的资源,第三方应用客户端Client可以独立的或代表用户Owner来访问这些受保护的资源,provider提供token令牌的管 ...

最新文章

  1. 黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码
  2. PSP 2.0降级至1.5详细教程(转)
  3. UA MATH564 概率论 计算至少有一个发生的概率:容斥原理与庞加莱公式
  4. 【转】dicom网络通讯入门(2)
  5. showdoc如何创建文件夹_showDoc生成文档
  6. AngularJS 技术总结
  7. 美国签证过不了,ICLR 2020搬到埃塞俄比亚,同性恋学者:不去,保命要紧
  8. 语言编程思维陈萌_这本书告诉你,计算机为何能读懂人类语言,编程思维让你更聪明...
  9. JavaScript警告框中的新行
  10. 利用ajax如何根据权限加载目录,AJAX调用框架,包含权限验证
  11. Layui 中引入Echarts模块
  12. Java并发编程实战--读书笔记(目录)
  13. word2013+endnotex8参考文献导入
  14. 【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
  15. 英文网站排名优化 谷歌SEO优化技巧方法
  16. 云剪贴板:以备不时之需
  17. Invalid bound statement (not found): com.xx.dao.TypeMapper.selectAll
  18. 注意力机制详解(Attention详解)
  19. php 按位与运算,PHP 按位与()运算符应用实践
  20. 未来 5 年的 5 大技术趋势

热门文章

  1. LeetCode 199. 二叉树的右视图(DFS 按层queue)
  2. LeetCode 39. 组合总和(排列组合 回溯)
  3. mysql正则表达式配置_G. MySQL正则表达式
  4. c语言分治算法求最大值,分治法找最大值(C語言)
  5. os、os.path、shutil操作文件和文件路径的常用方法总结
  6. Flink的时间语义和Watermark
  7. 【十】推荐系统遇到知识图谱RippleNet
  8. HDFS NameNode内存详解
  9. 课程 | 《知识图谱》第二期重磅来袭!
  10. 【Java】StringBuilder类、包装类