OAuth 2.0 是一种开放标准协议,用于在第三方应用用户资源之间实现安全的授权机制。它允许用户授予应用有限的访问权限,而无需暴露密码。以下是核心概念与特点:


🔐 核心原理

  1. 令牌交换

    • 用户通过授权码(Authorization Code)流程获取访问令牌(Access Token),用于后续 API 请求。
    • 示例流程:
      用户 → 授权服务器 (请求授权)  
      授权服务器 → 用户 (展示权限请求)  
      用户 → 授权服务器 (批准授权)  
      授权服务器 → 第三方应用 (返回令牌)  
      
    OAuth_2_0
  2. 安全性

    • 使用 HTTPS 加密传输,令牌存储于服务器端而非客户端。
    • 通过短期有效令牌刷新令牌机制降低泄露风险。
    OAuth_Security

🔄 授权方式 (Grant Types)

  • Authorization Code: 适用于 Web 应用,通过重定向获取授权码。
  • Client Credentials: 服务端到服务端的认证,用于机器对机器场景。
  • Password: 用户直接提供用户名和密码(不推荐,存在安全风险)。
  • Implicit: 适用于浏览器端单页应用,令牌通过 URL 返回。

更多关于授权码流程的细节,请参考 /en/docs/developer/api-reference/oauth2/authorization-code


📌 关键特性

  • 无状态设计:依赖令牌而非会话信息,便于分布式系统。
  • 可扩展性:支持多种场景(如移动端、桌面端、单页应用)。
  • 标准化接口:与 OpenID Connect 等协议兼容,简化集成。
OAuth_Authorization_Methods

📚 相关文档


📌 提示:OAuth 2.0 的安全性依赖于正确实现,建议结合 JWT 使用。

OAuth_Overview