OAuth2

简介: OAuth2

一、OAuth2概述

  • OAuth2是一个开放标准/开发协议,允许第三方应用访问该用户在某一网站存储的资源(头像、照片、视频)
  • 并且不需要将用户的账号和密码给第三方应用,而是通过token的方式实现访问,比如常见的qq登录、微博登录、github登录等
  • OAuth2是OAuth1.0协议下一版本,但是不兼容OAuth1.0
  • security 对OAuth2也是有非常好的支持,后面会介绍Spring Security OAuth2
  • OAuth2支持不同的授权模式,每种模式适用于不同的场景

二、OAuth2四种授权模式

1、四种授权模式概述

OAuth2有以下四种授权模式,每种授权模式应用于不同的互联网场景

  • 授权码模式
  • 简化模式
  • 密码模式
  • 客户端模式

四种授权模式的流程基本都一致的如下,只是个别步骤有所差异

A:客户端需要给用户授权

B:用户同意授权

C:客户端使用上面的授权向认证服务器获取令牌

D:认证服务器确认授权正确 下发令牌

E:客户端使用令牌访问认证服务器上的资源

F:资源服务器确认令牌正确,下发资源

2、授权码模式(重要)

常见的第三方登录(qq登录、github登录)基本都是用这种授权模式

这种也是使用最多、最完全、流程步骤最多的一种授权模式,流程如下

A:用户访问第三方应用,第三方应用通过浏览器访问认证服务器

B:用户选择是否授权

C:选择授权之后 ,认证服务器将用户导向客户端事先指定的重定向URL(redirection url),同时附上一个授权码

D:客户端收到授权码,附上上面的 重定向URL 向认证服务器申请令牌,此操作是在客户端的后端服务器完成,对用户不可见

E:认证服务器核对了授权码和重定向url之后,确认正确,下发访问令牌和更新令牌

3、简化模式

和授权码模式相比,跳过了用户授权(不需要用户授权了)直接在浏览器中想认证服务器申请令牌,令牌对访问者是可见的,且客户端不需要认证

流程如下

注意:这种模式在spring security oatuh2是没有实现的

4、密码模式

用户向客户端提供自己的账户和密码,客户端用这些信息去认证服务器索要授权。通常是用户高度信任的客户端使用这种模式认证

5、客户端模式

用户将账号和密码给客户端,客户端拿着账户和密码去认证服务器进行认证,流程如下



相关文章
|
3月前
|
存储 Linux 数据安全/隐私保护
自建私人云盘|OpenList 保姆级部署,吊打各大网盘
OpenList是开源网盘聚合工具,支持阿里云盘、百度网盘、夸克等数十种存储服务。一键Docker部署,统一管理多网盘文件,视频直链播放不耗服务器带宽,隐私安全有保障。(239字)
|
4月前
|
运维 数据可视化 机器人
OpenClaw Dashboard多智能体可视化管理方案:零配置面板+阿里云/本地全系统部署+模型配置完整版
在多智能体成为AI应用标配的2026年,个人与小团队普遍面临同一困境:同时运行多个OpenClaw Agent对接不同通讯平台,却缺乏统一管控入口——机器人在线状态、模型可用性、Token消耗、会话负载、服务异常全靠手动排查,管理成本随Agent数量呈指数级上升。OpenClawDashboard的出现,以**零配置、无数据库、轻量运行、实时读取**的设计理念,彻底解决多智能体运维混乱问题,将原本繁琐的人工巡检转化为可视化、一站式、可告警的高效管理模式。
1738 1
|
网络协议 API
端口复用(bind error: Address already in use 问题)
端口复用(bind error: Address already in use 问题)
1625 0
|
12月前
|
人工智能 Java Nacos
基于 Nacos + Higress 的 MCP 开发新范式,手把手教程来了!
本文介绍了如何使用 Nacos 3.0.1 与 Higress 配合,实现 HTTP 服务转化为 MCP 协议服务,并支持自动注册与代理。通过 Docker 部署环境,结合 Spring AI Alibaba 框架,可实现服务的自动暴露和动态配置管理,适用于零改造存量应用适配 MCP 协议的场景。
3887 24
|
存储 安全 数据安全/隐私保护
OAuth 2.0 的授权机制
【10月更文挑战第5天】
1388 2
|
12月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
3267 1
|
10月前
|
安全 JavaScript 前端开发
安全漏洞检测集成及实践:SAST/DAST工具集成指南
通过合理集成和配置SAST/DAST工具,可以显著提升应用程序的安全性,并在开发早期发现和修复漏洞,降低安全风险和维护成本
1145 4
|
数据安全/隐私保护
OAuth2.0实战案例
OAuth2.0实战案例
420 0
OAuth2.0实战案例