본문 바로가기
Python/Django

Drf simple JWT - Customizing token claims

by 코드뭉치 2023. 4. 21.

  Drf simple JWT - Customizing token claims

 

 

 

장고 심화 강의를 듣던 중 강의 영상에 나온 공식문서와 현재의 공식문서가 다른 부분이 있어,

현재 공식문서의 방식으로 토큰을 커스터마이징 해보았다.

 

   ↓ 강의 영상                                                                               ↓ 현재 공식 문서

token claims Customizing에 관한 공식 문서 - Simple JWT Customizing token claims

 

 

1. serializer.py에 CustomTokenObtainPairSerializer생성

token에서 email 필드를 확인할 수 있도록 get_token() 메소드를 오버라이딩 해주었다.

get_token() 메소드는 우리가 만든

CustomTokenObtainPairSerializer의 부모 클래스인 

TokenObtainPairSerializer의 부모 클래스인

TokenObtainSerializer안에 작성되어 있다.

 

2. url추가하기

이때, rest_framework_simplejwt.views에 있는 TokenObtainPairView를 as_view()로 사용

 

TokenObtainPairView는 simplejwt의 내장 view인데 이걸 view로 지정하면

방금 만든 CustomTokenObtainPairSerializer는 아무런 의미가 없다고 생각할 수 있다.

그러나 TokenObtainPairView는 함수 내부에서 _serializer_class

api_settings의 TOKEN_OBTAIN_SERIALIZER를 호출한다.

 

 

3. 프로젝트 세팅 변경해주기

이제 settings.py에서 SIMPLE_JWT 설정에 TOKEN_OBTAIN_SERIALIZER를 어떤 것으로 할 것인지 추가해준다.

지금의 경우 users.serializers 경로에 있는 CustomTokenObtainPairSerializer를 지정하면 된다.

 

4. 확인하기

jwt.io에 들어가서 email claims가 추가되었는지 확인해보면 된다.

제대로 들어가 있는 것을 확인할 수 있다.

댓글