使用密钥认证保护 API
您正在构建一个安全的 API,需要实现 API 密钥校验。该 API 会在每个请求的 X-API-Key 请求头中检查密钥,并将其与预定义的机密进行比对。您将使用 FastAPI 的内置安全功能来实现这套认证机制。
FastAPI 和 HTTPException 类已预先导入。
本练习是课程的一部分
使用 FastAPI 在生产环境中部署 AI
练习说明
- 从 FastAPI 导入处理依赖所需的函数。
- 创建一个 API 密钥头实例,作为依赖来验证请求中传入的 API 密钥。
- 完成
verify_api_key函数,检查传入的api_key是否与预定义的密钥匹配。 - 当请求中提供的密钥无效时,抛出一个 HTTP 异常。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import the function that handles dependencies
from fastapi import ____
from fastapi.security import APIKeyHeader
# Create the API key instance
api_key_header = ____(name="X-API-Key")
API_KEY = "your_secret_key"
# Pass the APIKeyHeader instance and verify against input api_key
def verify_api_key(api_key: str = Depends(____)):
if api_key != ____:
# Raise the HTTP exception here
raise ____(status_code=403, detail="Invalid API Key")
return api_key