- 支持试读
认识 OAuth 2.0
OAuth 2.0 是授权协议的行业标准,允许应用程序在无需共享密码的情况下获取对用户数据的有限、安全访问权限。 接入 Github OAuth 2.0
开发自己的 OAuth 服务之前,通过集成第三方的 OAuth 服务能更加了解其流程,本章我们将通过接入 Github 的 OAuth 服务来体验 OAuth 的完整流程。申请接入
本章我们开始实现自己的 OAuth 2.0 服务,首先从申请接入开始。应用管理
本章我们实现应用及密钥的管理。- 支持试读
用户授权
本章我们将实现用户授权。 - 支持试读
获取访问令牌及调用API
本章我们将实现访问令牌的获取以及用户信息API。
认识 OAuth 2.0
- 45
- 2026-02-27 08:54:14
OAuth 2.0 是授权协议的行业标准,允许应用程序在无需共享密码的情况下获取对用户数据的有限、安全访问权限。
理解 OAuth 2.0
阮一峰的这篇文章以通俗的语言介绍了 OAuth 2.0,而这篇文章更全面的介绍了 OAuth 2.0,我们来看看他是怎么说的。
OAuth 2.0 ,全称为“开放授权”(Open Authorization),是一种允许网站或应用程序代表用户访问其他 Web 应用程序托管资源的标准。它于 2012 年取代了 OAuth 1.0,如今已成为在线授权的事实行业标准。OAuth 2.0 提供经用户许可的访问权限,并限制客户端应用程序代表用户对资源执行的操作,且始终不会共享用户的凭据。
OAuth 2.0 使用访问令牌 (Access Token)。 访问令牌是一段数据,代表代表最终用户访问资源的授权。OAuth 2.0 没有定义访问令牌的特定格式。但是,在某些情况下,通常会使用 JSON Web Token (JWT) 格式。这使得令牌颁发者能够在令牌本身中包含数据。此外,出于安全考虑,访问令牌可能具有过期日期。
- 资源所有者(Resource Owner): 拥有受保护资源并可以授予访问权限的用户或系统。
- 客户端(Client): 客户端是指需要访问受保护资源的系统。要访问资源,客户端必须持有相应的访问令牌。
- 授权服务器(Authorization Server): 该服务器接收客户端的访问令牌请求,并在成功通过身份验证并获得资源所有者的同意后颁发令牌。授权服务器公开两个端点:授权端点,用于处理用户的交互式身份验证和同意;以及令牌端点,用于机器间的交互。
- 资源服务器(Resource Server): 保护用户资源并接收来自客户端的访问请求的服务器。它接受并验证来自客户端的访问令牌,并将相应的资源返回给客户端。
在 OAuth 2.0 中,**作用域(Scope)**是一个重要的概念。它用于精确指定授予资源访问权限的原因。可接受的作用域值及其关联的资源取决于资源服务器。
OAuth 2 授权服务器可能不会在资源所有者授权访问后直接返回访问令牌 (Access Token)。为了提高安全性,服务器可能会返回授权码 (Authorization Code) ,然后使用该授权码交换访问令牌。此外,授权服务器还可能与访问令牌一起颁发刷新令牌 (Refresh Token )。与访问令牌不同,刷新令牌通常具有较长的有效期,并且可以在访问令牌过期时将其交换为新的访问令牌。由于刷新令牌具有这些特性,客户端必须安全地存储它们。
在使用 OAuth 2.0 之前,客户端必须从授权服务器获取自己的凭据(客户端 ID 和客户端密钥 ),以便在请求访问令牌时进行身份识别和身份验证。
关于授权类型更多解释,可以参考《OAuth 2.0 的四种方式》(虽然不是很全)
如非特别说明,本专题后续章节将使用
OAuth代替OAuth 2.0
