👉 1. CORS (Cross-Origin Resource Sharing) 란
웹 어플리케이션이 자신이 속하지 않은 다른 도메인 / 포트 / 프로토콜의 리소스를 요청할 때, Cross-origin HTTP 요청을 보낸다. 이 때 보안상의 이유로 브라우저는 해당 Cross-origin HTTP 요청을 거부하는데, Django 에서는 해당 요청에 대해 CORS Header를 통해 허용이 가능하다.
👉 2. Library Install
pip install django-cors-headers
👉 3. App, Middleware Setting
INSTALLED_APPS = [
...,
"corsheaders",
...,
]
MIDDLEWARE = [
...,
"corsheaders.middleware.CorsMiddleware",
"django.middleware.common.CommonMiddleware",
...,
]
👉 4. 허용할 도메인 설정
방법 1
# 일부만 허용
CORS_ALLOWED_ORIGINS = [
"http://localhost:5500",
"http://127.0.0.1:5500",
]
# 또는 모두 허용할경우
CORS_ORIGIN_ALLOW_ALL = True
방법 2
# 일부만 허용시 다음과 같은 조합도 가능
CORS_ALLOW_ALL_ORIGINS = False
CORS_ORIGIN_WHITELIST = [
"http://127.0.0.1:3000",
"http://localhost:5173",
"https://test-domain.co.kr",
]
CSRF_TRUSTED_ORIGINS = CORS_ORIGIN_WHITELIST
# 자격 증명(쿠키, 인증 헤더 등)을 포함한 요청을 허용할지 여부를 지정
CORS_ALLOW_CREDENTIALS = True
# 정규식으로 허용
CORS_ALLOWED_ORIGIN_REGEXES = [
r"^https?:\/\/(?:\w+\-?)+\.test-domain\.co\.kr$",
]
👉 참고문헌
- https://pypi.org/project/django-cors-headers/
'Python > Django' 카테고리의 다른 글
[Django, MySQL] Django MySQL 셋팅하기 (0) | 2022.07.13 |
---|---|
[Django, AWS] EC2 에서 Nginx + Gunicorn + Django 배포하기 (0) | 2022.07.12 |
[Django] Pure Django vs DRF (Django Rest Framework) (0) | 2022.06.28 |
[Django] 트랜잭션 이란? (Transaction.atomic) (0) | 2022.06.21 |
[Django] User 모델 작성 방법 비교 (AbstractUser vs AbstractBaseUser) (0) | 2022.06.19 |