CORS(교차 출처 리소스 공유) | 토스페이먼츠 개발자센터

참고글

Cross-Origin Resource Sharing, 교차 출처 리소스 공유

출처 = Origin

Untitled

Origin = Protocol + Hostname + Port

출처가 다른 서버 간의 리소스 공유

CORS의 등장

예전 : 프론트와 백 구분 x, 모든 처리를 같은 도메인 안에서

현재 : 클라이언트에서 API를 직접 호출

에러 대응

서버에서 Access-Control-Allow-Origin 응답 헤더 세팅

→ 요청을 수락할 출처를 명시적으로 지정함

'Access-Control-Allow-Origin': <origin> | *
-> 보안에 취약함

'Access-Control-Allow-Origin': <https://myshop.com>
-> 권장 방식

파이보 프로젝트 실습에선 아래와 같이 수정함

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

app = FastAPI() #인스턴스 생성 

**origins = [
    "<http://localhost:5173>"
]

app.add_middleware(
    CORSMiddleware,
    allow_origins = origins,
    allow_credentials = True,
    allow_methods=["*"],
    allow_headers=["*"],
)**
@app.get("/hello")
async def welcome() -> dict:
    return{
        "message" : "안녕하세요 파이보"
    }