Python/Backend

FastAPI CORS 설정 방법 코드 예제

jimmy_AI 2024. 6. 30. 19:24
반응형

파이썬의 fastapi 모듈로 백엔드 서버를 구현할 때,

CORS 정책 설정을 진행하는 방법에 대한 코드 예제를

간략하게 정리해보도록 하겠습니다.

 

 

모든 경우 허용 예시

FastAPI에서 CORS 정책 설정은 CORSMiddleware를 import하여 

다음과 같은 코드 스니펫을 통하여 진행할 수 있습니다.

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

# CORS 설정 방법
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"], # 허용할 도메인 목록 (모든 도메인 허용: ["*"])
    allow_credentials=True, # 쿠키 등의 자격 증명을 포함한 요청 허용 여부
    allow_methods=["*"], # 허용할 메서드 (모든 메서드 허용: ["*"])
    allow_headers=["*"], # 허용할 헤더 (모든 헤더 허용: ["*"])
)

@app.get("/")
def health_check():
    return {"message": "Hello World"}

 

일반적으로 위의 인자 조합으로 허용 도메인 목록 / 자격 증명 포함 허용 여부 / 

메서드 타입 허용 종류 / 허용할 헤더 종류 등을 지정하게 됩니다.

 

 

디테일한 조건의 CORS 지정 예시

위에서는 모든 경우에 대한 허용을 진행하였지만

좀 더 디테일한 조건의 CORS를 설정한 예시는 다음과 같습니다.

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

# CORS 설정 방법
app.add_middleware(
    CORSMiddleware,
    allow_origins=["https://example1.com", "https://example2.com"], # 특정 도메인만 허용
    allow_credentials=True, # 자격 증명 허용
    allow_methods=["GET", "POST"], # 특정 메서드만 허용
    allow_headers=["Content-Type", "Authorization"], # 특정 헤더만 허용
)

@app.get("/")
def health_check():
    return {"message": "Hello World"}

 

이 예제는 example1과 example2의 https 주소에 해당하는 도메인에 대해서만

GET, POST 2가지 메소드만을 허용하는 예시입니다.

또한, 헤더 타입도 위의 두 가지로 지정되어 있으며, 자격 증명 포함은 허용하는 예시입니다.

이와 같이 설정을 조정하여 필요에 맞게 CORS 정책을 구성할 수 있습니다.