OAuth2 是一种授权框架,允许第三方应用访问受保护的资源。以下是我们关于 OAuth2 的开发者文档。

1. 简介

OAuth2 提供了一种安全的方式来授权第三方应用访问用户资源。它允许用户授权第三方应用访问其资源,而无需将用户名和密码直接提供给第三方应用。

2. 核心概念

  • 客户端:请求访问资源的第三方应用。
  • 资源所有者:拥有资源的用户。
  • 资源服务器:存储和保护资源的服务器。
  • 授权服务器:负责处理授权请求的服务器。

3. 流程

OAuth2 有多种授权流程,以下是一些常见的流程:

  • 授权码流程:适用于客户端安全存储令牌的场景。
  • 隐式流程:适用于简单的客户端应用,如移动应用。
  • 资源所有者密码凭证流程:适用于客户端可以安全地存储用户名和密码的场景。

4. 令牌

OAuth2 使用令牌来访问资源。令牌有以下类型:

  • 访问令牌:用于访问受保护的资源。
  • 刷新令牌:用于获取新的访问令牌。

5. 示例

以下是一个简单的 OAuth2 授权码流程示例:

  1. 用户访问客户端应用。
  2. 客户端应用将用户重定向到授权服务器。
  3. 用户在授权服务器上授权客户端应用。
  4. 授权服务器将用户重定向回客户端应用,并附带授权码。
  5. 客户端应用使用授权码向授权服务器请求访问令牌。
  6. 授权服务器验证授权码,并返回访问令牌。
  7. 客户端应用使用访问令牌访问资源。

6. 扩展阅读

更多关于 OAuth2 的信息,请参阅 OAuth2 RFC

OAuth2 Flow Diagram