在 OAuth 2.0 授权框架中,端点(Endpoints)是指提供授权和令牌服务的 URL。OAuth 2.0 规范定义了几个关键的端点,它们在授权流程中起着至关重要的作用。以下是主要的 OAuth 2.0 端点及其功能:
1. 授权端点(Authorization Endpoint)
授权端点用于处理客户端的授权请求。用户通过此端点登录并同意授权。
- URL:
/authorize
- 请求方法:
GET
- 请求参数:
response_type
: 指定授权类型,通常为code
(授权码模式)或token
(隐式模式)。client_id
: 客户端的唯一标识符。redirect_uri
: 授权后重定向的 URL。scope
: 请求的权限范围。state
: 防止跨站请求伪造(CSRF)攻击的随机字符串。
2. 令牌端点(Token Endpoint)
令牌端点用于处理客户端的访问令牌请求。客户端使用授权码、客户端凭证或资源所有者的用户名和密码等信息向此端点请求访问令牌。
- URL:
/token
- 请求方法:
POST
- 请求参数:
grant_type
: 指定授权类型,如authorization_code
、client_credentials
、password
等。code
: 授权码(授权码模式)。redirect_uri
: 授权码模式中指定的重定向 URL。client_id
: 客户端的唯一标识符。client_secret
: 客户端的密钥(机密客户端)。username
: 资源所有者的用户名(密码模式)。password
: 资源所有者的密码(密码模式)。scope
: 请求的权限范围。
3. 重定向端点(Redirect Endpoint)
重定向端点是用户在授权服务器同意授权后,授权服务器重定向到客户端指定的 URL。此 URL 会附带授权码或访问令牌。
- URL: 客户端提供的
redirect_uri
- 请求参数:
code
: 授权码(授权码模式)。token
: 访问令牌(隐式模式)。state
: 原请求中传递的状态参数,用于防止 CSRF 攻击。
4. 资源端点(Resource Endpoint)
资源端点是受保护资源的 URL,客户端在获取访问令牌后使用此端点访问资源。
- URL: 各种资源服务器上的受保护资源 URL
- 请求方法: 通常为
GET
或POST
- 请求头:
Authorization: Bearer <access_token>
- 请求参数: 根据具体资源而定
5. 令牌撤销端点(Token Revocation Endpoint)
令牌撤销端点用于撤销访问令牌或刷新令牌,确保被撤销的令牌不再有效。
- URL:
/revoke
- 请求方法:
POST
- 请求参数:
token
: 要撤销的访问令牌或刷新令牌。token_type_hint
: 可选,指示令牌类型(如access_token
或refresh_token
)。
6. 令牌刷新端点(Token Refresh Endpoint)
令牌刷新端点用于使用刷新令牌获取新的访问令牌。
- URL:
/token
(与令牌端点相同) - 请求方法:
POST
- 请求参数:
grant_type
: 必须为refresh_token
。refresh_token
: 刷新令牌。client_id
: 客户端的唯一标识符。client_secret
: 客户端的密钥(机密客户端)。scope
: 可选,请求的权限范围。
总结
OAuth 2.0 端点是授权流程中的关键部分,负责处理客户端的授权请求、令牌请求和访问资源等操作。了解这些端点的功能和使用方法,对于实现安全可靠的 OAuth 2.0 授权系统至关重要。