OAuth 2.0 讲解(已编辑)

鉴权 OAuth 2.0的实现(Spring_Security_Oauth2) 可以理解为客户端和服务器之间的一次私密谈话,在一次对话中可能会有多个请求和响应;同时要具有鉴别多个请求是来自同一个客户端的一次对话的功能;用户认证通过后,为了避免用户的每次操作都进行认证,可将用户的信息保证在会话中。会话就是系统为了保持当前用户的登录状态所提供的机制,常见的有基于session方式、基于token方式等。 阅读详情

前言:

OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。

这个标准比较抽象,使用了很多术语,初学者不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,OAuth 2.0 到底是什么。

一、快递员问题

我住在一个大型的居民小区。
在这里插入图片描述
小区有门禁系统。
在这里插入图片描述

进入的时候需要输入密码。

在这里插入图片描述

我经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通过门禁系统,进入小区。
在这里插入图片描述
如果我把自己的密码,告诉快递员,他就拥有了与我同样的权限,这样好像不太合适。万一我想取消他进入小区的权力,也很麻烦,我自己的密码也得跟着改了,还得通知其他的快递员。

有没有一种办法,让快递员能够自由进入小区,又不必知道小区居民的密码,而且他的唯一权限就是送货,其他需要密码的场合,他都没有权限?

二、授权机制的设计

于是,我设计了一套授权机制。

第一步,门禁系统的密码输入器下面,增加一个按钮,叫做"获取授权"。快递员需要首先按这个按钮,去申请授权。
第二步,他按下按钮以后,屋主(也就是我)的手机就会跳出对话框:有人正在要求授权。系统还会显示该快递员的姓名、工号和所属的快递公司。我确认请求属实,就点击按钮,告诉门禁系统,我同意给予他进入小区的授权。
第三步,门禁系统得到我的确认以后,向快递员显示一个进入小区的令牌(access token)。令牌就是类似密码的一串数字,只在短期内(比如七天)有效。
第四步,快递员向门禁系统输入令牌,进入小区。

有人可能会问,为什么不是远程为快递员开门,而要为他单独生成一个令牌?这是因为快递员可能每天都会来送货,第二天他还可以复用这个令牌。另外,有的小区有多重门禁,快递员可以使用同一个令牌通过它们。

三、互联网场景

我们把上面的例子搬到互联网,就是 OAuth 的设计了。

首先,居民小区就是储存用户数据的网络服务。比如,微信储存了我的好友信息,获取这些信息,就必须经过微信的"门禁系统"。

其次,快递员(或者说快递公司)就是第三方应用,想要穿过门禁系统,进入小区。

最后,我就是用户本人,同意授权第三方应用进入小区,获取我的数据。

简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。

四、令牌与密码

令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。

(1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。
(2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。
(3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

注意,只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。

OAuth 2.0 对于如何颁发令牌的细节,规定得非常详细。具体来说,一共分成四种授权类型(authorization grant),即四种颁发令牌的方式,适用于不同的互联网场景。

RFC 6749

OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。

OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。......资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。

这段话的意思就是,OAuth 的核心就是向第三方应用颁发令牌。然后,RFC 6749 接着写道:

(由于互联网有多种场景,)本标准定义了获得令牌的四种授权方式(authorization grant )。

也就是说,OAuth 2.0 规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式。

  1. 授权码(authorization-code)
  2. 隐藏式(implicit)
  3. 密码式(password):
  4. 客户端凭证(client credentials)

注意,不管哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。

授权码:
授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌。

这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。

第一步,A 网站提供一个链接,用户点击后就会跳转到 B 网站,授权用户数据给 A 网站使用。下面就是 A 网站跳转 B 网站的一个示意链接。
https://b.com/oauth/authorize?
  response_type=code&
  client_id=CLIENT_ID&
  redirect_uri=CALLBACK_URL&
  scope=read

上面 URL 中,response_type参数表示要求返回授权码(code),client_id参数让 B 知道是谁在请求,redirect_uri参数是 B 接受或拒绝请求后的跳转网址,scope参数表示要求的授权范围(这里是只读)。

在这里插入图片描述

第二步,用户跳转后,B 网站会要求用户登录,然后询问是否同意给予 A 网站授权。用户表示同意,这时 B 网站就会跳回redirect_uri参数指定的网址。跳转时,会传回一个授权码,就像下面这样。
https://a.com/callback?code=AUTHORIZATION_CODE

上面 URL 中,code参数就是授权码。

在这里插入图片描述

第三步,A 网站拿到授权码以后,就可以在后端,向 B 网站请求令牌。
https://b.com/oauth/token?
 client_id=CLIENT_ID&
 client_secret=CLIENT_SECRET&
 grant_type=authorization_code&
 code=AUTHORIZATION_CODE&
 redirect_uri=CALLBACK_URL

上面 URL 中,client_id参数和client_secret参数用来让 B 确认 A 的身份(client_secret参数是保密的,因此只能在后端发请求),grant_type参数的值是AUTHORIZATION_CODE,表示采用的授权方式是授权码,code参数是上一步拿到的授权码,redirect_uri参数是令牌颁发后的回调网址。

在这里插入图片描述

第四步,B 网站收到请求以后,就会颁发令牌。具体做法是向redirect_uri指定的网址,发送一段 JSON 数据。
{    
  "access_token":"ACCESS_TOKEN",
  "token_type":"bearer",
  "expires_in":2592000,
  "refresh_token":"REFRESH_TOKEN",
  "scope":"read",
  "uid":100101,
  "info":{...}
}

上面 JSON 数据中,access_token字段就是令牌,A 网站在后端拿到了。

Q1:token需要过期时间吗?
A1:token即是获取受保护资源的凭证,当然必须有过期时间。否则一次登录便可永久使用,认证功能就失去了其意义。非但必须有个过期时间,而且过期时间还不能太长,参考各个主流网站的token过期时间,一般不超过1h.

Q2:token过期该怎么办?
A2:token过期,就要重新获取。那么重新获取有两种方式,一是重复第一次获取token的过程(比如登录,扫描授权等),这样做的缺点是用户体验不好,每一小时强制登录一次几乎是无法忍受的。那么还剩第二种方法,那就是主动去刷新token. 主动刷新token的凭证是refresh token,也是加密字符串,并且和token是相关联的。相比获取各种资源的token,refresh token的作用仅仅是获取新的token,因此其作用和安全性要求都大为降低,所以其过期时间也可以设置得长一些。

Q3:refresh token需要过期时间么?
A4:客户端需要保存token和refresh token,以便下一次访问能继续。如果客户端是浏览器,那么两个token都需要设置过期时间;但是可以设置得长一点,可以以天为单位(例如7天、15天);如果客户端是一个服务器,那么refresh token可以永久有效,直到下一次登录,refresh token本身被更新为止。

隐藏式:
有些 Web 应用是纯前端应用,没有后端。这时就不能用上面的方式了,必须将令牌储存在前端。RFC 6749 就规定了第二种方式,允许直接向前端颁发令牌。这种方式没有授权码这个中间步骤,所以称为(授权码)"隐藏式"(implicit)。
第一步,A 网站提供一个链接,要求用户跳转到 B 网站,授权用户数据给 A 网站使用。
https://b.com/oauth/authorize?
  response_type=token&
  client_id=CLIENT_ID&
  redirect_uri=CALLBACK_URL&
  scope=read

上面 URL 中,response_type参数为token,表示要求直接返回令牌。

第二步,用户跳转到 B 网站,登录后同意给予 A 网站授权。这时,B 网站就会跳回redirect_uri参数指定的跳转网址,并且把令牌作为 URL 参数,传给 A 网站。
https://a.com/callback#token=ACCESS_TOKEN

上面 URL 中,token参数就是令牌,A网站因此直接在前端拿到令牌。

注意,令牌的位置是 URL 锚点(fragment),而不是查询字符串(querystring),这是因为 OAuth 2.0 允许跳转网址是 HTTP 协议,因此存在"中间人攻击"的风险,而浏览器跳转时,锚点不会发到服务器,就减少了泄漏令牌的风险。

在这里插入图片描述

这种方式把令牌直接传给前端,是很不安全的。因此,只能用于一些安全要求不高的场景,并且令牌的有效期必须非常短,通常就是会话期间(session)有效,浏览器关掉,令牌就失效了。

密码式:

如果你高度信任某个应用,RFC 6749 也允许用户把用户名和密码,直接告诉该应用。该应用就使用你的密码,申请令牌,这种方式称为"密码式"(password)。

第一步,A 网站要求用户提供 B 网站的用户名和密码。拿到以后,A 就直接向 B 请求令牌。
https://oauth.b.com/token?
  grant_type=password&
  username=USERNAME&
  password=PASSWORD&
  client_id=CLIENT_ID

上面 URL 中,grant_type参数是授权方式,这里的password表示"密码式",username和password是 B 的用户名和密码。

第二步,B 网站验证身份通过后,直接给出令牌。注意,这时不需要跳转,而是把令牌放在 JSON 数据里面,作为 HTTP 回应,A 因此拿到令牌。

这种方式需要用户给出自己的用户名/密码,显然风险很大,因此只适用于其他授权方式都无法采用的情况,而且必须是用户高度信任的应用。

凭证式:

最后一种方式是凭证式(client credentials),适用于没有前端的命令行应用,即在命令行下请求令牌。
第一步,A 应用在命令行向 B 发出请求。
https://oauth.b.com/token?
  grant_type=client_credentials&
  client_id=CLIENT_ID&
  client_secret=CLIENT_SECRET

上面 URL 中,grant_type参数等于client_credentials表示采用凭证式,client_id和client_secret用来让 B 确认 A 的身份。

第二步,B 网站验证通过以后,直接返回令牌。

这种方式给出的令牌,是针对第三方应用的,而不是针对用户的,即有可能多个用户共享同一个令牌。

令牌的使用:

A 网站拿到令牌以后,就可以向 B 网站的 API 请求数据了。

此时,每个发到 API 的请求,都必须带有令牌。具体做法是在请求的头信息,加上一个Authorization字段,令牌就放在这个字段里面。

curl -H "Authorization: Bearer ACCESS_TOKEN" \
"https://api.b.com"

上面命令中,ACCESS_TOKEN就是拿到的令牌。

更新令牌

令牌的有效期到了,如果让用户重新走一遍上面的流程,再申请一个新的令牌,很可能体验不好,而且也没有必要。OAuth 2.0 允许用户自动更新令牌。

具体方法是,B 网站颁发令牌的时候,一次性颁发两个令牌,一个用于获取数据,另一个用于获取新的令牌(refresh token 字段)。令牌到期前,用户使用 refresh token 发一个请求,去更新令牌。

https://b.com/oauth/token?
  grant_type=refresh_token&
  client_id=CLIENT_ID&
  client_secret=CLIENT_SECRET&
  refresh_token=REFRESH_TOKEN

上面 URL 中,grant_type参数为refresh_token表示要求更新令牌,client_id参数和client_secret参数用于确认身份,refresh_token参数就是用于更新令牌的令牌。B网站验证通过以后,就会颁发新的令牌。

OAuth 2.0 使用案例及全面解析(生产级实战指南) OAuth 2.0 是一个授权框架,允许第三方应用在获得用户授权后,有限度地访问用户在资源服务器上的受保护资源。选对授权流程(后端/SPA/移动/微服务)强化安全措施(PKCE、HTTPS、scope 最小化)管理令牌生命周期(短 AccessToken + 长 RefreshToken)生产级能力:令牌吊销、多租户、监控审计这样设计,既能保证安全性,又能兼顾用户体验,真正落地到生产环境。 阅读详情

相关推荐

从 ABAP 到 BTP:把 OAuth 2.0 Scopes 用清楚的那一次

把用好,标志着你的系统从能连通走向可控可审计。在ABAP世界,它与Gateway服务的生命周期紧密相连,通过PFCG的S_SCOPE精准落地;在BTP世界,它与role形成三段式的授权语言,既让开发者易于组合,也让管理员易于分配。掌握这些要点,你就能用更低的风险、更小的权限,驱动更多的业务创新。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 270

微信oauth2.0报错,Scope参数错误或没有Scope权限

上图: 一般是因为没有设置微信后台参数,设置方式如下: 登陆微信后台-->开发-->接口权限-->网页授权获取用户基本信息-->修改-->填写信任域名即可

alex_fung的博客 6224

基于PHP的开源问答系统完整解决方案

简介:“基于PHP的开源问答系统完整解决方案”是一款采用PHP语言开发的开源平台,支持快速搭建在线知识社区,具备问题发布、回答、评论、投票、分类标签、用户管理等核心功能。系统可与UCenter集成,实现多应用间用户统一登录与数据共享,提升用户体验。支持响应式设计、多语言、权限控制、插件扩展及数据备份,适用于构建高互动性的技术问答、企业知识库或社区论坛。本系统经过实际验证,具备良好的稳定性与可定制性,助力开发者高效部署专业级问答平台。

weixin_29997223的博客 1021

OAuth 2.0 详解

OAuth 2.0 概述更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。参考材料一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。有...

架构师的成长之路的博客 1720

高速光耦在隔离串口通信中的选型与优化策略

本文深入探讨了高速光耦在隔离串口通信中的关键作用与选型优化策略。针对串口通信中因普通光耦响应慢导致的误码问题,文章详细分析了响应时间、电流传输比、供电电压与隔离耐压等核心选型指标,并对比了6N137、HCPL-0601等主流型号。同时,提供了电路设计、PCB布局的优化技巧及实用的调试指南,旨在帮助工程师实现高速、稳定的隔离串口通信。

grpc6streamer的博客 322

告别GIS软件!用R语言ggplot2+ggmapcn绘制出版级世界地图(附5种投影对比图)

本文提供了一份完整的实践指南,教你如何利用R语言及其强大的ggplot2生态系统,结合ggmapcn包,绘制出出版级的世界地图。文章详细对比了五种经典地图投影(如摩尔维德、罗宾森投影)的代码实现与视觉差异,并讲解了如何添加比例尺、指北针等专业元素,最终导出高清PDF,实现从数据分析到专业可视化的全流程代码化操作,彻底告别传统GIS软件。

p5l2m9n4o6q的博客 407

OAuth 2.0授权框架中文版 [3] - 协议端点

OAuth 2.0授权框架中文版 [3] - 协议端点3. 协议端点 - Protocol Endpoints3.1 授权端点 - Authorization Endpoint3.1.1 响应类型 - Response Type3.1.2 重定向端点 - Redirection Endpoint3.1.2.1 授权请求保密性 - Endpoint Request Confidentiality3.1.2.2 注册条件 - Registration Requirements3.1.2.3 动态配置 - Dyn

李浩好好学习 890

Win10 环境下 ISE14.7 iMPACT 闪退的 DLL 修复方案 - FPGA 开发实战

本文详细介绍了在Win10系统下解决ISE14.7 iMPACT工具闪退问题的DLL修复方案,特别针对FPGA开发中常见的兼容性问题。通过替换关键DLL文件,有效解决了iMPACT在生成PROM文件时的崩溃问题,并提供了详细的步骤说明和注意事项,帮助开发者提升工作效率。

weixin_29197051的博客 210

OAuth2.0的四种授权方式

OAuth简单理解就是一种授权机制,它是在客户端和资源所有者之间的授权层,用来分离两种不同的角色。在资源所有者同意并向客户端颁发令牌后,客户端携带令牌可以访问资源所有者的资源。

张三李四王五老六 3071

【突变检验方法一】MATLAB实现Pettitt突变检验

MATLAB实现Pettitt突变检验及贝叶斯突变检测等

WW、forever的博客 1万+

【算能】TPU 指令集架构深度解析

TPU指令集以领域专用性与数据流驱动为核心,通过精简指令集、硬件固化逻辑与高并行架构,实现张量计算的极致性能。开发者通常无需直接编写指令,但理解其设计原理对性能调优(如内存布局优化、指令调度)至关重要。算能TPU通过开放指令描述与编译器工具链,为垂直行业提供了更高灵活性的定制空间,而谷歌TPU则依赖编译器的全自动化优化,更适合大规模标准模型部署。未来,随着稀疏计算、光子计算等技术的引入,TPU指令集将进一步向高能效与高泛化性演进。

浩瀚之水的专栏 1182

深入理解OAuth 2.0

介绍 2012年10月,OAuth 2.0协议正式发布为RFC 6749。现在百度开放平台,腾讯开放平台等大部分的开放平台都是使用的OAuth 2.0协议作为支撑。 OAuth是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。 在OAuth 2.0的认证和授权的过程中主要包括以下角色定义: Resource owner: 资源所有者(通常指用户或者提供资源服务的平台) Resource server:资源服务器(

weixin_45203607的博客 1106

31、MSP430FR2355时钟系统与低功耗模式解析

本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。

mars5的博客 195

Google Docs API Java开发深度指南

本文详细介绍了Google Docs API的Java认证与授权机制,重点讲解了两种认证方式:1) OAuth 2.0流程实现,包括客户端密钥加载、授权流程构建和服务实例创建;2) 服务账号认证方案,适用于服务器间通信。代码示例展示了如何通过GoogleCredentials处理服务账号密钥,设置HTTP请求初始化器,以及实现认证令牌的自动刷新。文章还提示了不同权限范围的作用,如文档读写、只读权限以及Drive访问权限等。

Hi,我是 pengles,一名专注于全栈开发的工程师。 499

R语言中的混淆矩阵(Confusion Matrix)是一种常用的评估多分类模型性能的工具

除了准确率,混淆矩阵还提供了其他有用的指标,如灵敏度(Sensitivity)、特异度(Specificity)、精确度(Precision)和召回率(Recall)。混淆矩阵通过比较模型预测结果与实际标签的一致性,帮助我们了解模型的分类准确性和错误类型。此外,混淆矩阵还提供了各种错误类型的统计信息,如假阳性(False Positive)和假阴性(False Negative)等。通过混淆矩阵,我们可以了解模型的整体性能和错误类型,从而对模型进行评估和改进。最后,为了更好地理解混淆矩阵的结果,可以使用。

HackSquad的博客 972

手把手教你学Simulink——整流器场景:基于PWM控制的单相全桥整流器设计

摘要:本文详细介绍了使用Simulink搭建基于PWM控制的单相全桥整流器的完整设计流程。主要内容包括:系统结构设计(含交流电源、全桥整流器、滤波电路等模块)、分步骤建模过程(从创建项目到添加各功能模块)、双闭环控制系统设计(电压外环和电流内环PI控制)、参数设置建议及仿真分析。通过仿真验证,该整流器可实现单位功率因数运行和稳定输出电压,并提供了数字锁相环等优化方向。文章为电力电子系统设计提供了实用的Simulink建模指导。(149字)

MHD0815的博客 324

OAuth2.0 的四种授权方式

OAuth2.0是一种用于授权的开放标准,它提供了一种安全的方式,允许用户授权第三方应用程序访问其受保护的资源,而无需共享其凭据。OAuth2.0定义了四种主要的授权方式,本文将介绍这些授权方式及其用途。

weixin_74268571的博客 1792

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TOKEN在OAuth2.0授权中的实战应用

我测试授权流程时发现,平台提供的实时日志和网络请求监控功能对调试OAuth2.0这种涉及多步跳转的场景特别有帮助。今天想和大家分享一下我在开发OAuth2.0授权服务器时的一些实战经验,特别是关于TOKEN在授权流程中的关键作用。这个项目是用Spring Security OAuth2实现的,包含了完整的授权码模式流程。对于想学习OAuth2.0的同学,我建议从一个简单的授权码模式实现开始,逐步添加各种安全措施和业务功能。授权码模式是OAuth2.0中最安全的一种授权方式,特别适合Web应用场景。

AgatePanther34的博客 715

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SinaWeibo Oauth2.0授权问题

本文讲的是如何通过Oauth2.0对第三方APP授权,Oauth2.0的授权流程,原理的这里就不介绍了,百度搜就有了。 这里主要讲的是怎么在自己的APP中添加代码,获取access token。 第一步:下载SDK。 登入open.weibo.com,在文档--资源下载--SD...

chouchou8654的博客 911

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OAuth2.0 基础概述

转自:https://www.cnblogs.com/Irving/p/4134629.html web:http://oauth.net/2/ rfc:http://tools.ietf.org/html/rfc6749 doc:http://oauth.net/documentation/ code:http://oauth.net/code/ OAuth2.0授权类型 OAuth2.0协议定...

s297485987的专栏 439

认识OAuth 2.0(大白话讲协议)?

本文转载来自知乎,原文网址:https://zhuanlan.zhihu.com/p/92051359是一个业界标准的授权协议,其定义了四种可以适用于各种应用场景的授权交互模式:授权码模式、应用授信模式、用户授信模式、简化模式。其中,授权码模式被广泛应用于第三方互联网开放平台,通过第三方登录是其最常见应用场景之一,比如使用微信、QQ和淘宝账号进行登录。

博客 699

mysql的密码采用digest md5或sha方式加密_密码学 - MD5 - 生成|加密|解密|相关工具

windows核心编程---第四章 进程上一章介绍了内核对象,这一节开始就要不断接触各种内核对象了.首先要给大家介绍的是进程内核对象.进程大家都不陌生,它是资源和分配的基本单位,而进程内核对象就是与进程相关联的一个数据结构.操作系统内核通过 ...【Jenkins】jenkins简单搭建并执行任务part 1 jenkins用户名的配置(gerrit 2.11) #安装jenkins $ sud...

weixin_42370345的博客 204

Gmail API OAuth 2.0 配置全指南:从零到一实现邮件自动化

OAuth 2.0 是现代应用安全访问用户数据的标准授权框架,其核心原理是通过令牌而非密码进行访问控制,在保障安全的同时实现细粒度权限管理。这一技术在 API 集成领域具有重要价值,尤其适用于需要处理用户私有数据的场景,如邮件、日历和云存储服务。Gmail API 作为 Google 服务生态的关键接口,其调用必须严格遵循 OAuth 2.0 协议。本文聚焦于 **Gmail API** 与 **OAuth 2.0 凭据** 的实战配置,详细解析如何在 Google Cloud Console 中正确启用

weixin_34005042的博客 377

OAuth2使用文档

翻译自:spring-security-oauth2-boot 写在前面的话: 一直在学习Spring OAuth2 ,但是网上的讲解材料让我看了头疼,而且一直也没有能让我一次就顺利运行起来的例子。不得已只能翻看官方文档。但是以我半吊子英语水平,很多句子的意思都是很模糊,甚至有时候猜测的意思完全相反。正好最近趁着在家,尝试翻译一下官方文档。 受英语水平所限,尽管有有道翻译和GOOGLE翻译,难免有...

levelmini的专栏 1277

OAuth2.0认证和授权以及单点登录

https://www.cnblogs.com/shizhiyi/p/7754721.html OAuth2.0认证和授权机制讲解 2017-10-30 15:33 by shizhiyi,2273阅读,0评论,收藏,编辑 第一章.OAuth2.0 介绍 OAuth认证 OAuth认证是为了做到第三方应用在未获取到用户敏感信息(如:账号密码、用户P...

weixin_30311605的博客 714

ShopXO用户登录体系:OAuth2.0第三方登录集成指南

你是否还在为用户注册转化率低而发愁?传统账号密码登录流程平均会造成30%的用户流失,而第三方登录能将这一数字降低至5%以下。ShopXO开源商城系统(zongzhige/shopxo)基于OAuth2.0(开放授权2.0)协议实现了完整的第三方登录体系,支持微信、QQ、支付宝等主流平台一键登录。本文将带你从零开始完成第三方登录集成,包括: - OAuth2.0授权流程核心原理 - 微信开放平台应...

gitblog_00886的博客 807
上一篇: Gradle Sync太慢?你需要使用阿里云仓库服务的代理仓库地址代替jcenter()、mavenCentral()及google()
下一篇: Mycat 1.6.5 配置MySql读写分离
DPnice
博客等级 码龄9年 38粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值