티스토리 뷰

파이썬/장고

django simple-jwt payload 확장하기

글을 쓰는 개발자 2021. 6. 22. 20:50
반응형
pip install djangorestframework-simplejwt

 

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'myuser.apps.MyuserConfig',
    'rest_framework_simplejwt', ## 적어주세요 '_' 주의!!
    'blog.apps.BlogConfig'
]

 

 

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticatedOrReadOnly',
    ), # login작업이외에 다른 views에서 토큰을 사용할 때 필요하다.
}

 

views.py

from django.shortcuts import render
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
from rest_framework_simplejwt.views import TokenObtainPairView

class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
    @classmethod
    def get_token(cls, user):
        token = super().get_token(user)

        token['is_staff']=user.is_staff #확장
        token['is_superuser']=user.is_superuser #확장
        return token

class MyTokenObtainPairView(TokenObtainPairView):
    serializer_class=MyTokenObtainPairSerializer

 

app 안에 있는 urls.py

from django.urls import path
from .views import MyTokenObtainPairView
urlpatterns=[
    path('user/token/',MyTokenObtainPairView.as_view())
]

 

Github 주소: https://github.com/VIXXPARK/django-remind/blob/main/django-simple-jwt/myuser/views.py

 

VIXXPARK/django-remind

Contribute to VIXXPARK/django-remind development by creating an account on GitHub.

github.com

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함