Bảo vệ API bằng xác thực bằng khóa
Bạn đang xây dựng một API an toàn và cần triển khai kiểm tra API key. API sẽ tìm khóa trong header X-API-Key của mỗi request và xác thực nó với một secret đã định sẵn. Bạn sẽ dùng các tính năng bảo mật tích hợp sẵn của FastAPI để triển khai hệ thống xác thực này.
Các lớp FastAPI và HTTPException đã được import sẵn.
Bài tập này là một phần của khóa học
Triển khai AI vào môi trường sản xuất với FastAPI
Hướng dẫn bài tập
- Import hàm cần thiết từ FastAPI để xử lý dependency.
- Tạo một instance API key header để tạo dependency dùng xác thực API key nhận vào trong request.
- Hoàn thiện hàm
verify_api_keybằng cách so sánhapi_keynhận vào với secret key đã định sẵn. - Ném một HTTP exception khi request truyền vào key không hợp lệ.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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