이번에는 리액트 말고, 장고 프로젝트에서 사용하는 API KEY를 숨겨보자.
프로젝트에서 트위터 API를 사용해서 최근의 검색 결과를 받아오는 작업이 필요했다.
근데 구글링 해보니 트위터 API를 사용하는 글이 다 node.js로 백엔드 서버에서 사용하는 경우였고, 프론트엔드(브라우저)에서 사용하면 트위터 API 서버 측에서 막아놔서 CORS 에러가 나는 것 같았다.
그래서 해당 API는 장고 백엔드 서버에서 호출하게 되었고, 팀원분께서 발급받은 BEARER_TOKEN 을 사용하였다.
BEARER_TOKEN 역시 깃허브에 업로드 되면 안되기 때문에, .gitignore에 추가해 주어야 한다.
나는 아래와 같이 진행해주었다.
1. secrets.json 파일을 만들기
secrets.json 이라는 이름의 파일을 프로젝트 루트폴더에 만들어준다.
2. secrets.json 파일 안에 JSON 형식으로 API KEY 혹은 TOKEN 등을 입력해준다.
SECRET_KEY는 장고 프로젝트의 settings.py에 정의된 key인데, 이후 작업을 위해 SECRET_KEY도 여기 추가해준다.
3. settings.py에서 KEY 불러오기
기존에 settings.py에 지정되어 있던 SECRET_KEY는 secrets.json 파일로 빼주었기 때문에 주석처리하였다.
그리고, secrets.json 파일을 불러와서 KEY값을 설정할 수 있도록 get_secret() 라는 함수를 만들어 주었다.
그 다음, get_secret() 함수를 사용해서 secrets.json 파일에 넣어둔 KEY 값을 원하는 이름으로 불러와준다.
4. view에서 사용하기
view에서 해당 key를 사용하기 위해 settings.py 모듈을 임포트 해준다.
from django.conf import settings
그 다음, 아래처럼 KEY 이름으로 바로 불러와주면 사용 가능하다!
BEARER_TOKEN = settings.TWITTER_BEARER_TOKEN
5. .gitignore에 secrets.json 추가하기
secrets.json 파일을 숨겨주는 것도 잊지 말자
아래의 포스트들을 참고하였음
https://itwithruilan.tistory.com/m/128
[010/Django] secret.json | API KEY 숨기기
1. 문제상황 2022.04.19 - [그 땐 IT활동했지/그 땐 영일영 근무했지] - [010/API] Naver API | 블로그, 카페 글 크롤링 해오기 이전 포스팅을 보면 Naver API KEY를 view에서 그냥 변수에 할당해 사용했다. 하지만
itwithruilan.tistory.com
Django에서 비밀 값(secrets) 관리하기
장고에서 사용하는 AWS 시크릿 코드, 장고 시크릿 키 등의 비밀 값들은 프로젝트 코드에 포함되면 안됩니다. 이러한 비밀 값들을 별도의 JSON파일로 보관하고, 해당 값들을 장고에서 불러오는 방
lhy.kr
'Django' 카테고리의 다른 글
[ Django ] Django REST framework로 회원 기능 API 만들기 (1) | 2023.01.30 |
---|---|
[ Django ] MAC OS에 Django 설치하기 (0) | 2023.01.13 |