OAuth 2.0(Open Authorization 2.0)是一个授权框架,它允许第三方应用程序访问用户在服务提供者上的资源,而无需将用户的用户名和密码直接提供给第三方应用程序。OAuth 2.0 是一种授权机制,不是身份验证机制,它通过授予令牌(Access Token)来授权客户端访问受保护的资源。
OAuth 2.0 主要概念
-
授权服务器(Authorization Server):负责认证用户身份并颁发访问令牌(Access Token)。通常,授权服务器会在成功授权后将访问令牌发送给客户端应用程序。
-
资源服务器(Resource Server):承载用户数据的服务器。资源服务器负责验证令牌的有效性,并允许持有有效令牌的客户端访问用户的资源。
-
客户端(Client):请求访问资源的应用程序。客户端可以是 Web 应用、移动应用、桌面应用等。
-
资源拥有者(Resource Owner):通常是用户,拥有受保护资源的所有权。资源拥有者会授予客户端访问其资源的权限。
-
访问令牌(Access Token):由授权服务器颁发的令牌,客户端通过访问令牌来访问受保护的资源。令牌是有限时效的,且通常具有访问范围限制。
-
刷新令牌(Refresh Token):当访问令牌过期时,刷新令牌可以用来请求新的访问令牌,而无需用户重新授权。
OAuth 2.0 的授权流程
OAuth 2.0 定义了几种授权方式(授权类型),每种方式适用于不同的应用场景。以下是常见的几种授权方式:
1. 授权码模式(Authorization Code Grant)
授权码模式是 OAuth 2.0 中最常见的一种方式,主