본문 바로가기
코딩공부/Django

Django 각종 API Key, Token 관리하는 방법

by Dong_Devlog 2022. 12. 7.

여러 외부 API를 사용하기 위해 필요한 API Key 또는 Token 값들을 프로젝트 코드에 포함해서 저장할 경우에 Git에 노출되어 피해를 볼 수 있게 된다. 그래서 이를 해결하기 위한 방법으로 JSON 파일에 내용을 작성하고 그 값들을 장고에서 불러와 사용하면 된다.

 

프로젝트 구조

django_project                                         
├── app
│   ├── __init__.py
│   ├── ....
│   └── wsgi.py
├── db.sqlite3
├── manage.py                                    
├── secrets.json
├── .git
└── .gitignore

 

secrets.json에 내용 저장

아래와 같이 필요한 키 값이나 토큰 값을 입력하여 저장

{
    access_token : "1600...Vbsk9"
    access_secret : "bpgW...1mRl"
}

 

settings.py 작성

아래와 같이 경로를 지정하여 Json 파일을 가져와 읽게 되면 원하는 값을 활용할 수 있게 된다.

import sys
import json

# 파일의 경로를 지정
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
ROOT_DIR = os.path.dirname(BASE_DIR)
SECRETS_PATH = os.path.join(ROOT_DIR, '.secrets.json')

# Json 형식의 파일 읽기
secrets = json.loads(open(SECRETS_PATH).read())

# imtes() 함수로 key와 value 값으로 가져옴
for key, value in secrets.items():
    setattr(sys.modules[__name__], key, value)

 

.gitignore에 추가

.gitignore에 secrets.json을 추가하여 git에서 제외해야 할 파일로 지정해둔다. (가장 중요함 !!!)

secrets.json

댓글