OAuth #
什么是 OAuth? #
OAuth(Open Authorization)是一个开放标准,允许用户授权第三方应用访问其在其他服务提供商存储的信息,而无需将用户名和密码提供给第三方应用。
核心定位 #
text
┌─────────────────────────────────────────────────────────────┐
│ OAuth │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 安全授权 │ │ 无需密码 │ │ 有限权限 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 标准协议 │ │ 多种流程 │ │ 广泛支持 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
为什么使用 OAuth? #
传统方式的痛点 #
text
传统方式问题:
❌ 密码共享
用户需要提供密码给第三方
第三方获得完全访问权限
安全风险极高
❌ 无法细粒度控制
无法限制访问范围
无法限制访问时间
无法撤销特定授权
❌ 密码泄露风险
第三方存储密码
密码可能被泄露
影响所有关联服务
OAuth 的解决方案 #
text
OAuth 解决方案:
✅ 无需密码
用户在服务提供商处授权
第三方不接触用户密码
✅ 细粒度权限
可以限制访问范围(scope)
可以设置过期时间
可以随时撤销授权
✅ 安全令牌
使用 Token 替代密码
Token 可以随时失效
支持刷新机制
OAuth 2.0 授权流程 #
授权码模式 #
text
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 用户 │ │ 第三方 │ │ 服务商 │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
│ 1. 点击登录 │ │
│─────────────────────────>│ │
│ │ │
│ 2. 重定向到授权页面 │ │
│<─────────────────────────│ │
│ │ │
│ 3. 用户同意授权 │ │
│─────────────────────────────────────────────────────>│
│ │ │
│ 4. 返回授权码 │ │
│<─────────────────────────────────────────────────────│
│ │ │
│ 5. 传递授权码 │ │
│─────────────────────────>│ │
│ │ │
│ │ 6. 用授权码换取 Token │
│ │─────────────────────────>│
│ │ │
│ │ 7. 返回 Access Token │
│ │<─────────────────────────│
│ │ │
文档结构 #
text
OAuth 文档
├── 基础入门
│ ├── OAuth 简介
│ └── 核心概念
│
├── 授权模式
│ ├── 授权码模式
│ └── PKCE 扩展
│
└── 与 JWT 结合
└── JWT 与 OAuth
OAuth 2.0 授权类型 #
| 授权类型 | 适用场景 | 安全性 |
|---|---|---|
| 授权码模式 | 服务端应用 | 高 |
| PKCE | 移动端/SPA | 高 |
| 客户端凭证 | 机器对机器 | 中 |
| 设备码 | 设备无浏览器 | 中 |
学习路径 #
text
入门阶段
├── OAuth 简介
└── 核心概念
进阶阶段
├── 授权码模式
├── PKCE 扩展
└── 其他授权类型
高级阶段
├── JWT 与 OAuth
├── 安全最佳实践
└── OpenID Connect
下一步 #
现在你已经了解了 OAuth 的基本概念,接下来学习 OAuth 简介,深入了解 OAuth 的详细原理!
最后更新:2026-03-29