OAuth2.0 授权 OpenID Connect 身份认证

news/2025/2/3 20:51:22/

文章目录

  • OAuth2.0
    • 历史由来
    • 名词解释
    • 授权码模式(authorization code 最常用)
      • 先换取code,再根据 code 换取 access_token原因
    • 简化模式(implicit)
    • 密码模式(resource owner password credentials)
    • 客户端模式(client credentials)
  • OpenID Connect
  • 案例

OAuth2.0

历史由来

  • 有一个第三方网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让第三方网站读取自己储存在Google上的照片
  • 传统方法是,用户将自己的Google用户名和密码,告诉第三方网站,后者就可以读取用户的照片了。这样的做法有以下几个严重的缺点
    • 第三方网站为了后续的服务,会保存用户的密码,这样很不安全,第三方应用程序被破解,就会导致用户密码泄漏,以及所有被密码保护的数据泄漏
    • 第三方网站拥有了用户储存在Google所有资料的权力,用户没法限制第三方网站获得授权的范围和有效期
    • 用户只有修改密码,才能收回第三方网站赋予的权力
  • OAuth在"客户端"与"服务提供商"之间,设置了一个授权层。“客户端"不能直接登录"服务提供商”,只能登录授权层,获取所用的令牌(token),"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。

名词解释

1)Third-party application:第三方应用程序,本文中又称"客户端"(client)。(2HTTP service:HTTP服务提供商,本文中简称"服务提供商",即Google。(3)Resource Owner:资源所有者,本文中又称"用户"(user)。(4)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。(5)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

授权码模式(authorization code 最常用)

  • 创建应用:A网站开发者首先去诸如淘宝开放平台创建应用,开放平台会生成一个client_id作为A网站唯一标识
  • 跳转授权页:用户在A网站点击使用淘宝账号登陆时,实际上跳转至淘宝提供的授权页,会带上 client_id 和 redirect_uri 等参数
  • 重定向:用户在授权页面输入淘宝用户名和密码,校验成功后跳转至A网站 redirect_uri 回调地址,地址上会拼接授权码 code
  • A网拿到授权码 code 后访问授权服务器,用授权码 code 去换访问口令 access_token 和 过期更新口令 refresh_token
    • refresh_token的时效性比access_token长,当access_token过期时,可以使用refresh_token换取新的access_token
 // access_token 示例{"access_token":"2YotnFZFEjr1zCsicMWpAA","token_type":"example","expires_in":3600,"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA","example_parameter":"example_value"}
  • 完成授权:后续后端请求用户的信息通过 access_token 来获取
    在这里插入图片描述

先换取code,再根据 code 换取 access_token原因

简化模式(implicit)

密码模式(resource owner password credentials)

客户端模式(client credentials)

OpenID Connect

案例

OAuth2第三方登录实践


http://www.ppmy.cn/news/244232.html

相关文章

Hibernate+Lombok进行表与表之间关系时插入数据时栈溢出

报错信息如下: 当使用Hibernate和Lombok处理表与表之间的关系时,在插入数据时可能会遇到栈溢出错误。这篇博客将详细讨论此问题的原因,并提供解决办法。 标题: HibernateLombok进行表与表之间关系时插入数据时栈溢出 问题背景 Hibernate是一…

戴尔15-7572怎样设置硬盘启动?

1、开机按F1进bios。 2、进入bios页面,按键盘→按键右移至Startup,然后向下移至Primary Boot Sequence。 3、看到硬盘,将需要设置的硬盘调整为第一启动。 4、方向键向下,移到需要调整的硬盘,按数字键盘的符号&#…

戴尔DELL 笔记本 改WIN7 BIOS 设置详解

博主出品必属精品 其他参考:改WIN7 BIOS 关键点设置详解 链接: http://blog.csdn.net/qq_33350731/article/details/76136189 按以下修改好支持 GPTUEFI启动一键安装WIN7 (第三步不改才支持一键安装) 图片参考百度 1,重启按F2 进…

dell 7527 raid50 故障处理

dell 7525 raid50 单盘故障,无法自动重建问题 {1}生产故障表现 单块raid5中,某块磁盘出现故障,raid出现降级,重建插入后,查看磁盘状态,未进入自动重建状态。 {2}生产环境描述 生产环境下,de…

【C++】——list的介绍及模拟实现

文章目录 1. 前言2. list的介绍3. list的常用接口3.1 list的构造函数3.2 iterator的使用3.3 list的空间管理3.4 list的结点访问3.5 list的增删查改 4. list迭代器失效的问题5. list模拟实现6. list与vector的对比7. 结尾 1. 前言 我们之前已经学习了string和vector&#xff0c…

Android RK3588-12 hdmi-in Camera方式支持NV24格式

hdmi-in Camera方式支持NV24格式 modified: hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp modified: hardware/interfaces/camera/device/3.4/default/ExternalCameraDeviceSession.cpp diff --git a/hardware/interfaces/camera/device/3.4…

sid,eld,sidd dataset介绍,dng图像处理

文章目录 SID dataset1. SID dataset 概述2. SID 读取和显示代码3. 一些示例 SIDD datasetELD datasetDNG camera pipeline SID dataset 1. SID dataset 概述 SID 是Learning to See in the Dark 论文中提出的暗光raw数据集 其中包括两个相机的拍摄数据 Sony alpha7S II 和 …

【vue中修改swiper样式】

原文&#xff1a;https://www.cnblogs.com/fightjianxian/p/11920913.html vue中修改swiper样式 问题&#xff1a;vue单文件组件中无法修改swiper样式。 解决 1. 单文件组件中&#xff1a;新增一个style 不加scoped 让它最终成为全局样式。只在其中操作swiper的样式。 <s…