OAuth 2.0 认证

OAuth2.0 详解+案例 OAuth 2.0 是目前最主流的(注意:是 “授权” 而非 “认证”),其核心作用是让第三方应用(如小程序、第三方网站)在的前提下,安全地获取用户在某平台(如微信、淘宝、GitHub)上的部分资源访问权限(如读取用户头像、获取订单信息)。它解决了传统 “账号密码共享” 模式的安全风险(如第三方应用泄露密码、过度获取权限),被广泛应用于社交登录、开放平台接口调用等场景。 阅读详情

1. 基本认知

1.1 业务场景

A网站需要获取B网站用户的数据,需要跳转到B网站,用户登陆后授权,A网站得到一个有时效和权限的令牌(token),可以通过令牌获取用户的信息。

1.2 令牌与密码的区别

  • 令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。

  • 令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。

  • 令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

2.授权方式

  • 授权码(authorization-code)

第一步,A 网站提供一个链接,用户点击后就会跳转到 B 网站,授权用户数据给 A 网站使用。下面就是 A 网站跳转 B 网站的一个示意链接。

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

第二步,用户跳转后,B 网站会要求用户登录,然后询问是否同意给予 A 网站授权。用户表示同意,这时 B 网站就会跳回redirect_uri参数指定的网址。跳转时,会传回一个授权码code。

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

第四步,B 网站收到请求以后,就会颁发令牌。具体做法是向redirect_uri指定的网址,发送一段 JSON 数据。access_token字段就是令牌,A 网站在后端拿到了。

  • 隐藏式(implicit)

有些 Web 应用是纯前端应用,没有后端。这时就不能用上面的方式了,必须将令牌储存在前端。

第一步,A 网站提供一个链接,要求用户跳转到 B 网站,授权用户数据给 A 网站使用。response_type参数为token,表示要求直接返回令牌。

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

  • 密码式(password)

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

第一步,A 网站要求用户提供 B 网站的用户名和密码。拿到以后,A 就直接向 B 请求令牌。grant_type参数是授权方式,这里的password表示"密码式",username和password是 B 的用户名和密码。

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

  • 客户端凭证(client credentials)

最后一种方式是凭证式(client credentials),适用于没有前端的命令行应用,即在命令行下请求令牌。

第一步,A 应用在命令行向 B 发出请求。grant_type参数等于client_credentials表示采用凭证式,client_id和client_secret用来让 B 确认 A 的身份。

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

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

OAuth2的四种授权方式 OAuth2四种授权方式 阅读详情

相关推荐

SpringBoot OAuth2.0认证管理流程详解

OAuth2.0是一个开放的授权协议,可以用来实现第三方应用对我们API的访问控制,OAuth2.0中定义的角色包括: 1) Resource Owner(资源拥有者) 2) Client (第三方接入平台,请求者) 3) Resource Server (服务器资源: 数据中心) 4) Authorization Server (认证服务器) 授权认证的基本流程包括: 首先Client需要向Resource Ow......

u012477420的博客 1万+

Oauth2.0的四种模式

1. 授权码模式 (1)资源拥有者打开客户端,客户端要求资源拥有者给予授权,它将浏览器被重定向到授权服务器,重定向时会 附加客户端的身份信息。如: /uaa/oauth/authorize? client_id=p2pweb&response_type=code&scope=app&redirect_uri=http://xx.xx/notify 参数列表如下: client_id:客户端接入标识。 response_type:授权码模式固定为code。 scope:客户端权限

qq_37457564的博客 2825

Oauth2.0 认证

Oauth2.0 是非常流行的网络授权表准,已经广泛应用在全球范围内,比较大的公司,如腾讯等都有大量的应用场景。

m0_62943934的博客 2542

OAuth2.0详细介绍与实践(通俗易懂)

Oauth2.0详细介绍及其实践

cV展示的学习园 5万+

oauth2.0认证原理

OAuth2.0(开放授权)是最流行的认证授权机制,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用, 兼容http。

change_fate的博客 1319

OAuth 2.0实现统一认证

OAuth 是 Open Authorization 的简写。OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 OAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAuth 是安全的。OAuth 2.0(开放授权)是一个认证框架,它允许应用程序访问您在其他应用程序上存储的个人信息,而无需共享您的密码。

边博磊的博客 1598

OAuth 2.0认证

本文深入解析 OAuth 2.0 的核心概念,详细介绍四种授权模式,分析安全性问题和最佳实践,探讨实际应用场景。

tatasix的博客 1612

教程:在Spring Boot应用中集成OAuth 2.0认证

通过本教程,我们学习了如何在Spring Boot应用中集成和使用OAuth 2.0认证。从添加依赖、配置OAuth 2.0客户端信息,到配置Spring Security和创建控制器处理认证后的回调,这些步骤帮助开发者快速实现安全的认证机制,并保护应用程序的资源。

省赚客开发者博客 3251

Spring Security OAuth2.0认证授权知识概括

Spring Security OAuth2.0认证授权知识概括安全框架基本概念基于Session的认证方式Spring SecuritySpringSecurity应用详解 安全框架基本概念 什么是认证: 进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条等,下边拿微信来举例子说明认证相关的基本概念,在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,输入账号和密码 登录微信的过程就是认证。 系统为什么要认证? ①认证是为了保护系统的隐私数据与资源,用户的身份合法方

weixin_41005188的博客 4026

简单谈谈OAuth 2.0的四种认证方式

让我来康康oauth2有啥不一样

Armandhe的博客 5023

在Spring Boot中实现OAuth2.0认证

配置 OAuth2.0 客户端、设置 Spring Security 的 OAuth2.0 配置、创建控制器和视图都是实现这一认证流程的关键步骤。OAuth2.0 是一种用于授权的协议,它使得用户可以授权第三方应用程序访问他们在某服务提供商上的资源,而无需共享他们的凭据。在这个视图中,我们创建了一个登录链接,当用户点击时会重定向到 Google 的登录页面。大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!现在,可以运行 Spring Boot 应用程序,并在浏览器中访问。

微赚开发者技术分享博客 1553

13 FastAPI集成OAuth 2.0 认证

在 Web 应用中,认证(Authentication)是确认用户身份的过程,而授权(Authorization)是验证用户是否有权限访问某些资源的过程。身份验证:确认请求是由合法用户发起的。权限控制:确保用户只访问自己有权限的资源。OAuth 2.0 是一种常用的授权框架,它使用户能够授权第三方应用访问其受保护的资源,而无需暴露自己的凭证。通过 OAuth 2.0,用户可以授权某个应用访问其数据(如 Google、GitHub 等服务),而不需要直接与该应用共享密码。

wujianyouhun的专栏 2030

OAuth2.0 全面介绍

OAuth 是一种授权协议, 通过他, 用户可以授权第三方应用访问自己保存在资源服务器上的资源。 OAuth 目前使用的版本是2.0。

oscar999的专栏 1929

oauth2.0认证

oauth2.0认证流程、四种认证方式、客户端各字段说明。

weixin_42772860的博客 2621

Nornir自动化简单介绍-网络设备信息收集

作为网工,学会通过执行脚本,可以自动化的完成日常一些设备相关配置或信息收集等工作,可以说是事半功倍。 Nornir就是这样一个自动化网络运维工具。按照官网上的说明: Nornir是用python编写的自动化框架,可与python一起使用。Nornir旨在通过提供一个纯Python框架来解决这些问题。 详细参考: Github GitHub - nornir-automation/nornir: Pluggable multi-threaded framework with inventory .

Gun&rose 7806

bert-ini:一种基于bert的实体对齐交互模型

本次分享一项来自IJCAI-20的实体对齐工作,该工作提出了一种不同于以往的采用图结构信息进行实体对齐的技术方案,该方案取得了当时的最好效果;不仅如此,模型本身的对齐效率在该项工作中也被考虑,实际工作中非常具备借鉴意义。

qq_33331424的博客 3155

OAuth 2.0的授权认证流程

1、Auth2.0 协议简介2、OAuth 2.0的授权认证流程OAuth 2.0 的核心概念认证思路与流程3、OAuth2.0 的四种模式授权码模式(authorization code)隐式授权模式(Implicit Grant)资源所有者密码凭证模式(Resource Owner Password Credentials Grant)客户端凭证模式(Client Credentials Grant)4、相关文章Auth2.0 协议简介。

qq_34068440的博客 5873

GD32F4x芯片加密实战:从读保护到安全启动全解析

本文详细解析了GD32F4x芯片加密的实战操作,从读保护功能到安全启动全流程。通过具体代码示例和应用场景分析,帮助开发者有效防止固件被盗用,提升工业控制、智能门锁等场景下的数据安全性。重点介绍了读保护功能的底层机制、配置步骤及常见问题解决方案。

weixin_42629671的博客 208

基于OAuth2.0和JWT规范实现安全易用的用户认证

遵循`OAuth2.0`和`JWT`规范实现用户认证,不但具有很好的实用性,还能提供很不错的安全保障。 本文结合实用的代码讲述了基于`OAuth2.0`和`JWT`,在前后端分离的系统中,实现用户使用方便而又安全可靠的用户认证的基本思路。

liupras的博客 1504

无人机开发平台全解析:从开源飞控到企业级应用实战指南

无人机开发平台是无人机从飞行器演变为智能空中机器人的核心,其本质是提供了一套标准化的软硬件接口与工具链,使开发者能够基于稳定可靠的底层系统,专注于上层应用创新。从技术原理上看,一个完整的开发平台通常包含飞行控制器、机载计算机、传感器套件等硬件层,以及飞控固件、机器人操作系统(ROS/ROS 2)、软件开发套件(SDK)等软件层,通过分层架构实现飞行控制、感知决策与任务执行的解耦。其技术价值在于大幅降低了无人机行业应用的开发门槛,使开发者无需从零构建飞行控制系统,即可快速实现自动巡检、精准农业、物流配送等复杂

weixin_28712491的博客 412

逆向工程师必备:用MDL绕过游戏保护读取内存数据的完整流程(附POC代码)

本文深入探讨了内核级内存访问技术,重点介绍了如何利用MDL(Memory Descriptor List)机制稳定、隐蔽地绕过游戏反作弊系统读取进程内存。通过对比MmCopyVirtualMemory等方法的优劣,提供了完整的MDL映射实战代码与反检测策略,为逆向工程师在内核态进行安全内存操作提供了专业指导。

weixin_29227425的博客 626

OAuth2.0认证原理

OAuth2.0认证原理 一.OAuth是什么? OAuth的英文全称是Open Authorization,它是一种开放授权协议。OAuth目前共有2个版本,2007年12月的1.0版(之后有一个修正版1.0a)和2010年4月的2.0版,1.0版本存在严重安全漏洞,而2.0版解决了该问题,下面简单谈一下我对OAuth2.0的理解。 二.OAuth2.0有什么用? 引用一下OAuth2.0中文文档中的介绍: 1.需要第三方应用存储资源所有者的凭据,以供将来使用,通常是

weixin_47073925的博客 8047

如何用zemax导入solidworks装配体

在zemax使用中,常常需要导入各种零件。如果光机结构较为复杂,那么手工一个一个加载零件,还需要在zmx文件中调整object的位置,非常麻烦。如果能将solidworks的装配体模型直接导入,则可以大幅减小工作量。具体过程为(非序列模式下): 1、新建或打开一个zemax空文件 2、在元件编辑器中,找到一个空文件,双击或直接展开三角符,在类型中找到zemax里的solidworks装配体,如图。...

wojiaoyyy的博客 1万+

服务认证授权:OAuth2.0

目录第一章 OAuth2.0的预备篇1.1、Base641.1.1、Base64的介绍1.1.2、Base64的演示1.2、JWT1.2.1、JWT的介绍1.2.2、JWT的组成1.2.3、JWT的特点1.2.4、JWT的演示1.2.5、JWT的隐患1.3、RSA1.3.1、RSA的介绍1.3.2、公钥私钥的介绍1.3.3、公钥私钥的生成1.4、SSO1.4.1、SSO的介绍1.4.2、SSO的实现第二章 OAuth2.0的介绍篇2.1、OAuth2.0的概述2.2、OAuth2.0的模式2.2.1、授权码

轻松的小希 1万+

华为OD机试 新系统真题-收集灵草(Java/Py/C++/Go/C/Js)

华为OD机试 新系统真题【收集灵草】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【收集灵草】多语言题解。

qq_45776114的博客 554

【如何学习CAN总线测试】——CAN物理层测试

随着智能电动汽车行业的发展,众多的测试人员也加入到汽车电子测试行业中,而CAN网络是汽车上常见的网络之一,对于新加入的测试人员,不知道CAN网络该如何测试、用例如何设计,本章就就主要介绍CAN网络的物理层测试。

测试领域技术分享 1万+
上一篇: LeetCode-1[两数之和]
下一篇: MySQL优化
codeLife1993
博客等级 码龄8年 23粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值