[ PROMPT_NODE_24722 ]
full-oauth-server
[ SKILL_DOCUMENTATION ]
# 完整 OAuth 服务器
> 构建一个自包含的身份验证系统,其中您的 FastMCP 服务器负责管理用户、签发令牌并进行验证。
> **警告:** **这是一个极其高级的模式,大多数用户应避免使用。** 构建一个安全的 OAuth 2.1 服务器需要深厚的身份验证协议、密码学和安全最佳实践方面的专业知识。其复杂性远超初始实现,还包括持续的安全监控、威胁响应和合规性维护。
**请改用远程 OAuth**,除非您有外部身份提供程序无法满足的迫切需求,例如气隙环境或特殊的合规性需求。
完整 OAuth 服务器模式的存在是为了支持 MCP 协议规范的要求。您的 FastMCP 服务器既是授权服务器又是资源服务器,处理从用户登录到令牌验证的完整身份验证生命周期。
此文档仅供参考——绝大多数应用程序应使用外部身份提供程序。
## OAuthProvider
FastMCP 提供了实现 OAuth 2.1 规范的 `OAuthProvider` 抽象类。要使用此模式,您必须继承 `OAuthProvider` 并实现所有必需的抽象方法。
> **注意:** `OAuthProvider` 处理 OAuth 端点、协议流程和安全要求,但将所有存储、用户管理和业务逻辑委托给您的抽象方法实现。
## 必需实现
您必须实现这些抽象方法来创建一个功能完备的 OAuth 服务器:
### 客户端管理
根据 ID 从您的数据库中检索客户端信息。
要查找的客户端标识符
客户端信息对象,如果未找到客户端则返回 `None`
将新的客户端注册信息存储在您的数据库中。
要存储的完整客户端注册信息
无返回值
### 授权流程
处理授权请求并返回重定向 URL。必须实现用户身份验证和同意收集。
发起授权请求的 OAuth 客户端
来自客户端的授权请求参数
发送客户端的重定向 URL
根据代码字符串从存储中加载授权代码。如果 c