Cross-Origin Resource Sharing (CORS)는 웹 애플리케이션이 다른 도메인의 리소스에 접근할 수 있도록 허용하는 보안 메커니즘입니다. FastAPI는 빠르고 간단한 CORS 처리를 제공하여 클라이언트가 서버에 안전하게 요청을 보낼 수 있도록 도와줍니다. 이번 블로그 포스트에서는 FastAPI에서 CORS를 처리하는 방법에 대해 알아보겠습니다.
FastAPI에서 CORS 미들웨어 사용하기
FastAPI에서 CORS를 처리하기 위해 fastapi.middleware
모듈에 있는 CORS
클래스를 사용할 수 있습니다. 먼저 FastAPI 애플리케이션에 CORS 미들웨어를 추가해야 합니다.
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
"http://localhost",
"http://localhost:3000",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
위 코드에서 origins
리스트에는 허용할 클라이언트 도메인을 추가할 수 있습니다. allow_origins
매개변수에 *
를 사용하면 모든 도메인에서 요청을 허용합니다. allow_credentials
를 True로 설정하면 클라이언트에게 쿠키와 같은 인증 정보를 전송할 수 있습니다. allow_methods
와 allow_headers
에는 허용할 HTTP 메서드와 헤더를 지정할 수 있습니다.
예외 도메인 설정
특정 도메인에 대해서는 CORS 정책을 예외로 처리하고 싶을 수 있습니다. 이 경우 add_middleware
메서드에 allow_origins
매개변수에 함수를 지정하여 예외 도메인을 처리할 수 있습니다.
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
def custom_origins():
return [
"http://localhost",
"http://localhost:3000",
"https://example.com"
]
app.add_middleware(
CORSMiddleware,
allow_origins=custom_origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
위 코드에서 custom_origins
함수는 허용할 클라이언트 도메인 리스트를 반환합니다. 이 함수를 사용하면 동적으로 예외 도메인을 추가하거나 제거할 수 있습니다.
결론
이번 블로그 포스트에서는 FastAPI에서 CORS를 처리하는 방법에 대해 알아보았습니다. FastAPI의 CORS
미들웨어를 사용하면 간단하게 CORS를 처리할 수 있으며, 예외 도메인을 처리하는 방법도 알아보았습니다. 이를 통해 FastAPI 애플리케이션에서 안전한 클라이언트 요청을 처리할 수 있습니다.
참고문헌: