Django
[Django API] Django + JWT
torimuk
2022. 4. 26. 11:17
Problem
Django API와 JWT를 연계하여 로그인 시스템 구현하기
Solution
1. djangorestframework-jwt 를 설치한다.
pip install djangorestframework-jwt
2. jwt를 import 한 뒤, 로그인과 관련된 로직을 작성한다.
3. 입력한 ID와 PW가 DB의 값과 일치한 경우, 다음과 같이 access_token을 작성하여 response에 포함시켜준다.
ALGORITHM = 'HS256' # 알고리즘을 입력.
SECRET_KEY = 'secret_key' # 변하지 않는 secret_key를 입력.
if match_admin(user_res["user_pw"], admin_info["password"]): # 패스워드가 일치할 경우
access_token = jwt.encode({'id': user_res["user_id"]}, SECRET_KEY, algorithm=ALGORITHM)
data = {"token": access_token.decode("utf8")}
4. 이후 프론트엔드와 통신 시 access_token을 사용한다. access_token 확인 로직은 다음과 같다.
access_token = jwt.decode(token, SECRET_KEY, algorithm=ALGORITHM)