OAuth2四种模式

2023-11-12

一、隐式授权模式(Implicit Grant)

流程图

在这里插入图片描述

步骤

 第一步:用户访问页面时,重定向到认证服务器。
 第二步:认证服务器给用户一个认证页面,等待用户授权。
 第三步:用户授权,认证服务器想应用页面返回Token
 第四步:验证Token,访问真正的资源页面

优缺点及适用场景

在这里插入图片描述

二、授权码授权模式(Authorization code Grant)

流程图

在这里插入图片描述

步骤

 第一步:用户访问页面
 第二步:访问的页面将请求重定向到认证服务器
 第三步:认证服务器向用户展示授权页面,等待用户授权
 第四步:用户授权,认证服务器生成一个code发送给应用服务器,然后,应用服务器拿到code,
 		并用client_id去后台查询对应的client_secret
 第五步:将code、client_id、client_secret传给认证服务器换取access_token和refresh_token
 第六步:将access_token和refresh_token传给应用服务器
 第七步:验证token,访问真正的资源页面

优缺点及适用场景

在这里插入图片描述
案例Github自取:https://github.com/PinkPig-cq/springSecurityoAuth

三、密码模式(Resource Owner Password Credentials Grant)

流程图

在这里插入图片描述

步骤

 第一步:用户访问用页面时,输入第三方认证所需要的信息(QQ/微信账号密码)
 第二步:应用页面那种这个信息去认证服务器授权
 第三步:认证服务器授权通过,拿到token,访问真正的资源页面

优缺点及适用场景

 优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。(都拿到账号密码了)
 缺点:局限性,认证服务器和应用方必须有超高的信赖。(比如亲兄弟?)
 适用场景:自家公司搭建的认证服务器

四、客户端凭证模式(Client Credentials Grant)

流程图

在这里插入图片描述

步骤

 第一步:用户访问应用客户端
 第二步:通过客户端定义的验证方法,拿到token,无需授权
 第三步:访问资源服务器A
 第四步:拿到一次token就可以畅通无阻的访问其他的资源页面。

优缺点及适用场景

 优点:这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。
 缺点:这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。
 适用场景:这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。

原文链接:OAuth2简易实战(一)-四种模式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OAuth2四种模式 的相关文章

  • 虚幻4学习笔记(10)蓝图接口、拾取物品-射线检测

    虚幻4学习笔记 蓝图接口 拾取物品 射线检测 骨架网格体和静态网格体的区别 骨架网格体设置碰撞 B站UP谌嘉诚课程 https www bilibili com video BV164411Y732 蓝图接口 添加 内容浏览器 右键 蓝图
  • 多模态简介

    1 多模态定义 多模式深度学习是一个机器学习子领域 旨在训练人工智能模型来处理和发现不同类型数据 模式 之间的关系 通常是图像 视频 音频和文本 通过结合不同的模态 深度学习模型可以更普遍地理解其环境 因为某些线索仅存在于某些模态中 想象一
  • VMware Tools安装(实现物理机与虚拟机文件互拷)

    1 开启虚拟机 2 点击VMware菜单上的虚拟机 弹出的菜单中点击安装VMware Tools 3 点击DVD 出现右边如图 4 复制VMware Tools压缩文件到opt文件夹 复制时可能出现下图描述 5 解决方法 1 打开终端 输入
  • 你了解System.out.println()的真正含义吗?

    在Java编程中 我们常常用 System out println 来输出字符串 也许我们都已经猜到println 是方法名 但System是什么 out又是什么呢 其实System是java lang里面的一个类 如下图 而out就是Sy
  • IDEA中/** 内容 */注释的快捷键

    在 IDEA 中 你可以使用快捷键 来快速生成 内容 注释 要使用此快捷键 请在你想要添加注释的代码行上按 Ctrl Windows 系统 或 Command Mac 系统 如果你想要撤销注释 可以再次按一次快捷键即可 注意 你必须在代码行
  • 设计模式学习笔记(七)之模板方法模式(Template Method)

    设计模式学习笔记 七 之模板方法模式 Template Method 最近实习工作稍微没有那么忙了 继续抽些晚上时间学习一下设计模式 以下是看设计模式书的学习笔记 关于模式定义之类的内容是在自己理解之后进行摘录的 希望对大家有用 代码下载链
  • SpringBoot获取微信公众号(小程序)access_token 使用Redis存储

    文章目录 前言 一 导入依赖 二 编写配置 1 personal yaml配置文件 2 WeChatBean实体类 3 编写RestTemplateConfig 4 开启定时任务 三 实现生成和存储access token 1 基本介绍 2
  • 路飞IT全学科实战项目5年黑金卡

    正在代理路飞IT全学科实战项目5年黑金卡 文末有联系方式 包含Python开发 Linux云计算 前端开发 Golang开发 AI 数据分析 网络安全 技术生涯 C语言 JAVA开发 测试 PHP 视频讲解 项目源码内容非常详细 开通黑金卡
  • 浅入深谈:如何更好地理解面向对象编程与面向过程编程的本质区别?

    今天 我们以一个例子 如打扫房间 来说明面向过程和面向对象在程序流程上的不同之处 在菜鸟分析看来 面向过程就是将编程当成是做一件事 要按步骤完成 每一步就是一个过程 比如菜鸟分析要打扫房间这件事 需要先取扫帚 然后仔仔细细打扫每一处 最后将
  • springboot理论知识汇总(图文解析)

    MVC HTTP请求处理流程 参数绑定 不同注解修饰的参数都有支持的方法参数处理器 例如 RequestParam对应的是RequestParamMethodArgumentResolver 在请求处理流程中的调用目标方法环节 会使用对应的
  • 语义分割混淆矩阵、 mIoU、mPA计算

    一 操作 import cv2 img gray cv2 imread nezha jpg cv2 IMREAD GRAYSCALE for i in range 22 dst cv2 applyColorMap img gray i cv
  • Scratch基础-积木讲解-必学(2000字)

    上次那篇文章有小伙伴跟Rocky丶说教程看不大懂 那我今天来给大家分享自己对scratch中每一个积木的认识 运用 后半部分Rocky丶可能没时间更新了 因为要上课 作业做不完 而且初三任务较重 我让我的好朋友PLTS帮我慢慢补咯 希望CS
  • vs2010环境下提示找不到d3dx9.h

    无法打开d3dx9 h 我们知道d3dx9 h是在DirectX SDK中的 我们只是需要下载下来就可以了 下载地址为 http www microsoft com en us download details aspx id 6812 如
  • 如何在 Luminar 4 中​使用AI天空更换工具?

    如何在 Luminar 4 中使用AI天空更换工具 如果照片缺少引人入胜的天空 AI天空更换工具可以轻松替换它 该工具设计用于平坦或暴风雨的天空 但通常可以通过改进滑块进行调整以适用于大多数天空 AI天空更换工具利用人工智能的力量自动分析图
  • 【JavaScript】(一)类型转换

    JS支持自动类型转换 其功能非常强大 首先看一段代码 结果如下 由此可见执行减法运算的时候 自动执行算术运算 但是执行加法运算的时候 默认将 作为连接符 它的转换规律如下 对于减号运算符 因为字符串不支持减法运算 所以系统自动将字符串转换成
  • Loongnix单机部署Ceph(LoongArch架构、Ceph N版、手动部署MON、OSD、MGR、Dashboard服务)

    基础环境信息 CPU 龙芯3C5000L 2 内存 128G 硬盘 系统盘 一块512G的NVME的SSD 数据盘 三块16T的HDD 操作系统版本 Loongnix 8 4 Ceph版本 Ceph 14 2 21 Nautilus Cep
  • java中优雅的参数校验方法

    一 引子 要对方法的参数进行校验 最简单暴力的写法是这个样子 public static void utilA String a BigDecimal b if StringUtils isEmpty a System out printl
  • java-FileReader和FileWriter的介绍

    在java中对数据输入输出的操作陈作为流 我们对不同的文件进行操作 或者对操作文件进行输入和输出时所用的流都是不同的 因此在java io的包下存在很多流的类或者接口提供给我们对应的操作 流的原理 输入流 input 将外部的文件通过流读取
  • css3中vh和vw分别是什么意思?

    1vw等于视口宽度 viewport width 的百分之一 也就是说100vw就是视口的宽度 同理 1vh等于视口高度 viewport height 的百分之一 100vh就是视口的高度

随机推荐

  • 位运算高级应用

    位运算的高级应用 位运算符 针对整数的二进制 下面的数据假设为1字节 实际为4字节 12 0000 1100 13 0000 1101 12 13 0000 1100 按位与 相同的位都为1才为1 12 13 0000 1101 按位或 相
  • 了解Linux虚拟化

    了解Linux虚拟化 本章为读者提供了Linux虚拟化中的主流技术及其相对于其他技术的优势的见解 本书共有14章 涵盖了KVM虚拟化的所有重要方面 从KVM内部和高级主题 如软件定义的网络 性能调整和优化 到物理到 虚拟迁移开始 在本章中
  • ubuntu安装ssh

    1 检查自己是否安装了openssh server dpkg l grep ssh 如果输出内容有openssh server 说明已经安装过了 可以跳过下一步 2 安装openssh server 由于ubuntu自带ssh客户端 只需要
  • docker 命令报异常permission denied

    在Linux系统中 新安装docker 输入命令 如 docker images 结果却报异常了 简单理解就是当前用户的连接被拒绝了 解决方案一 使用管理员权限 命令前加sudo 解决方案二 给当前用户加入到docker用户组中 sudo
  • 牛牛的等差数列【线段树】

    题目链接 这里的突破口在于小于等于25且大于等于3的质数连乘在1e8左右 所以 我们可以在操作上 将其看作对1e8去求模 而不是对每个都进行预处理 时间复杂度 也就是说 我们排除这个预处理之后 直接就是降了10倍左右的复杂度 然后 给区间一
  • 涉密服务器虚拟化软件,虚拟化软件解决方案

    1 背景 随着涉密行业信息化建设和IT业务的快速增长 涉密行业传统信息化建设中对于服务器应用面临着如下困境 资源利用率低 传统服务器应用部署模式采用 烟囱式 架构 单个应用独享整个服务器资源 资源利用率低 业务上线周期长 新增业务时 需要重
  • python小游戏 消消乐小游戏设计与实现

    文章目录 0 项目简介 1 游戏介绍 2 实现效果 3 开发工具 3 1 环境配置 3 2 Pygame介绍 4 具体实现 5 最后 0 项目简介 Hi 各位同学好呀 这里是L学长 今天向大家分享一个今年 2022 最新完成的毕业设计项目作
  • codeforces 1215d D. Ticket Game

    题意 有长度为n的串 内容为0 9数字或 Mono先手 填数 Mono希望前n 2个数和 后n 2个数和 Bicarp希望相等 问谁能赢 记录两边的 数量lnum rnum 记录两边和lsum rsum 如果两边lnum rnum时 如果l
  • python文件读写方法手机,Python中文件的读写操作的几种方法

    对文件的操作 步骤为 打开一个文件 gt 读取 写入内容 gt 保存文件 文件读写的3中模式 1 w 写模式 它是不能读的 如果用w模式打开一个已经存在的文件 会清空以前的文件内容 重新写 w 是读写内容 只要沾上w 肯定会清空原来的文件
  • 浅谈 logback的MDC机制

    logback的MDC机制 1 MDC 介绍 MDC Mapped Diagnostic Context 映射调试上下文 即将一些运行时的上下文数据通过logback打印出来 是 一种方便在多线程条件下记录日志的功能 和SiftingApp
  • 后谷歌时代:谁能笑到最后?

    后谷歌时代 谁能笑到最后 自从谷歌把 g cn转向 www google com hk那天起 后谷歌时代已经来临 早在谷歌退出中国市场仅仅是传言时 搜狗 有道 搜搜纷纷叫嚣着抢夺谷歌在中国的市场份额 现在看来 抢夺谷歌中国市场份额的绝非搜狗
  • Cypress vs Playwright——哪个 JavaScript 测试框架更好?

    10 年前 自动化测试人员如果要编写 E2E 测试 主要使用 Selenium 每个有机会使用该解决方案的人都应该会记得设置 编写和调试是多么不愉快 在此过程中还创建了一些更有趣的自动化工具 例如 Webdriver io TestCafe
  • SonarLint(代码质量检测工具+案例+好习惯养成器)

    文章目录 参考文章 一 SonarLint是什么 代码质量检测器 SonarQube 和SonarCloud 二 代码质量问题案例 1 异常应该被记录或重新抛出 但不能同时被记录和重新抛出 2 局部变量不应该声明后立即返回或抛出 3 不使用
  • [carla]通过Twist指令控制carla中的车辆

    0 背景 通过carla ros bridge with example ego vehicle launch可以启动carla ros bridge 并在carla中生成一台可以遥控的车 roslaunch carla ros bridg
  • 前端js读取本地md或txt文件内容

  • mysql数据库日志查询

    Mysql数据库日志 日志分类 MySql日志类型 解析说明 错误日志 error log 当数据库启动 运行 停止时产生该日志 普通查询日志 general query log 客户端连接数据库执行语句时产生该日志 二进制日志 binar
  • 前端js拼接Json串

    前端js拼接json串 示例1 数组里面含对象 组成的json串 group
  • 带样式的HTML节点深拷贝

    引用自 摸鱼wiki 1 思路 使用 cloneNode true 深拷贝节点及其子节点的结构 利用 computedStyle 获取当前节点的样式 遍历获取的样式结构体 赋值给复制节点 递归子节点 循环进行2 3步 2 代码示例 func
  • 汽车保养项注意-2

    基本信息 大众朗逸刹车油每4万公里可更换一次 价格在200元左右 这应该定期更换 5万换一次即可 刹车片6 8万公里换一次 刹车盘7万公里 发动机内部养护 燃油系统养护 四轮定位是对整车行车轨迹的检查修正 包括悬挂 底盘 零部件等的调整 动
  • OAuth2四种模式

    OAuth2四种模式 一 隐式授权模式 Implicit Grant 流程图 步骤 优缺点及适用场景 二 授权码授权模式 Authorization code Grant 流程图 步骤 优缺点及适用场景 三 密码模式 Resource Ow