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)
'Django' 카테고리의 다른 글
[Django] Swagger header에 JWT 추가하기 (0) | 2022.04.29 |
---|---|
[Django] Function Based View 환경에서 Swagger 사용하기 (0) | 2022.04.28 |
[Django] 500 Internal server error handler (0) | 2022.02.14 |
[Django] Debug=False 설정 시 static 이 깨지는 오류 (0) | 2021.12.27 |
[Django] settings 파일 (0) | 2021.12.22 |