토큰 : 클라이언트에게 발행하는 통행증 비스무리한 것
이런 이유로 토큰이라는 통행증을 발행, 검사하여 서비스 이용을 수월하게 한다.
pip install pyjwt
import jwt # pyjwt로 설치하지만 import할 때에는 jwt로 import한다.
회원가입 성공 시나 로그인 성공 시 토큰을 발행하는게 일반적이다.
아무튼 토큰을 발행하는 경우라고 가정하고..
access_token = jwt.encode({'id': 1}, SECRET, algorithm="HS256")
return JsonResponse({'access_token': access_token}, status=200)
# jwt.encode(담을 정보, 시크릿 키, 알고리즘)
# 담을 정보는 민감하지 않은 정보(pk등)만을 담아야 한다. (복호화 될 가능성이 있기 때문에)
def get(self, request):
access_token = request.headers.get('Authorization')
pay_load = jwt.decode(access_token, SECRET, algorithms=["HS256"])
# pay_load = {'id': 1}
return JsonResponse({'user_id': pay_load['id']}, status=200)
유효한 토큰일 경우, 토큰을 디코딩해서 해당 유저의 정보(pk등)을 가져와 원하는 작업을 할 수 있다.