Django 4.1 API 작업 - CORS(Cross-Origin Resource Sharing) header 설정

Kwon, Hyojin·2021년 3월 14일
0

Django

목록 보기
9/9
post-thumbnail

django-cors-headers 라이브러리 github을 참고하였습니다.

https://github.com/adamchainz/django-cors-headers

(프론트엔드의) 클라이언트 앱 url과 (백엔드의) 서버 api 주소가 다를 경우 , 보안의 위험 때문에 브라우저는 다른 출처에 대한 HTTP 요청을 막으려고 할 것입니다.

이 때문에 프론트엔드에서 Django 앱에 대한 브라우저 내 응답(리소스)을 받을 수 있도록 CORS 헤더를 추가해야 합니다.

  1. django-cors-headers 설치

    poetry add django-cors-headers
  2. settings 파일에 app과 middleware 추가

    # velog/config/settings/prod.py
    # ...
    INSTALLED_APPS = ['corsheaders'] + INSTALLED_APPS
    
    MIDDLEWARE = [
        'corsheaders.middleware.CorsMiddleware',  # 가능한 한 위에 배치
        'django.middleware.common.CommonMiddleware',
    ] + MIDDLEWARE
  3. setttings 파일에 상황에 따라 다음 세 가지 설정 중 하나 이상 설정 추가

    • CORS_ALLOWED_ORIGINS: 교차 사이트 HTTP 요청을 할 권한이 있는 출처 목록
    • CORS_ALLOWED_ORIGIN_REGEXES: 교차 사이트 HTTP 요청을 수행할 수 있는 권한이 있는 오리진과 일치하는 정규식을 나타내는 문자열 목록
    • CORS_ALLOW_ALL_ORIGINS: 모든 출처 허용. 허용된 출처를 제한하는 다른 설정은 무시
  4. 배포 후 브라우저에서 확인

    • 어떻게 확인..?
    • 추후 프론트 서버 붙고 나서 api가 잘 통신이 되는지 확인..
profile
파이썬 웹 백엔드 개발자

0개의 댓글