认识
一、认识
OAuth 2.0
(开放授权 2.0
版本)是一种授权框架,旨在允许第三方应用在不暴露用户凭据(如用户名和密码)的情况下,代表用户访问受保护的资源。OAuth 2.0
定义了一组允许客户端应用在用户授权下访问某些资源的标准协议,它是一种广泛使用的授权机制,广泛应用于 Web
应用、移动应用和 API
服务中。
OAuth 2.0
主要解决了 授权 的问题,而不是身份验证。简单来说,OAuth 2.0
允许用户授权第三方应用访问某些资源,但不要求提供用户名和密码,而是通过 访问令牌(Access Token
) 来控制权限。
二、工作流
1. 客户端请求授权: 客户端(比如 Web
应用)将用户重定向到授权服务器的授权端点。请求包含以下参数:client_id
:客户端 ID
, redirect_uri
: 用户认证后重定向的 URI
, scope
:请求的权限范围,response_type=code
:指示请求授权码。
-
用户授权: 用户在授权服务器上登录并授权客户端访问其资源。授权服务器生成一个 授权码(
Authorization Code
),并将用户重定向回客户端提供的redirect_uri
。 -
客户端使用授权码交换访问令牌: 客户端收到授权码后,向授权服务器的令牌端点发送
POST
请求,包含以下参数:client_id
和client_secret
:客户端的认证信息,code
:前一步获得的授权码,redirect_uri
:客户端的重定向URI
。 -
授权服务器返回访问令牌: 授权服务器验证请求并返回
Access Token
(访问令牌)和Refresh Token
(如果申请了刷新令牌)。 -
客户端使用访问令牌访问资源: 客户端可以使用
Access Token
来访问资源服务器上的受保护资源。资源服务器通过验证Access Token
来决定是否允许访问。 -
刷新令牌(可选): 当
Access Token
过期时,客户端可以使用Refresh Token
向授权服务器请求新的Access Token
,而不需要用户重新授权。