update
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
from rest_framework import serializers
|
||||
from .models import CustomUser
|
||||
|
||||
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
|
||||
|
||||
class RegisterSerializer(serializers.ModelSerializer):
|
||||
password = serializers.CharField(write_only=True)
|
||||
@ -15,3 +15,20 @@ class RegisterSerializer(serializers.ModelSerializer):
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
return user
|
||||
|
||||
|
||||
class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
|
||||
@classmethod
|
||||
def get_token(cls, user):
|
||||
token = super().get_token(user)
|
||||
|
||||
# ✅ JWT payload에 커스텀 정보 추가
|
||||
token["name"] = user.name
|
||||
token["grade"] = user.grade
|
||||
token["email"] = user.email # 선택적으로 추가 가능
|
||||
|
||||
return token
|
||||
# def validate(self, attrs):
|
||||
# data = super().validate(attrs)
|
||||
# data['name'] = self.user.name # ✅ 여기에 토큰 응답 추가 정보 삽입
|
||||
# return data
|
@ -1,10 +1,12 @@
|
||||
from django.urls import path
|
||||
from .views import RegisterView, MeView
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
|
||||
from .views import RegisterView, MeView, CustomTokenObtainPairView
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView
|
||||
|
||||
urlpatterns = [
|
||||
path('register/', RegisterView.as_view(), name='register'),
|
||||
path('login/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||
# path('login/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||
path('login/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||
path('refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
||||
path('verify/', TokenVerifyView.as_view(), name='token_verify'),
|
||||
path('me/', MeView.as_view(), name='me'),
|
||||
]
|
||||
|
@ -1,9 +1,9 @@
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import status
|
||||
from .serializers import RegisterSerializer
|
||||
from .serializers import RegisterSerializer, CustomTokenObtainPairSerializer
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView
|
||||
|
||||
class RegisterView(APIView):
|
||||
def post(self, request):
|
||||
@ -20,4 +20,7 @@ class MeView(APIView):
|
||||
def get(self, request):
|
||||
user = request.user
|
||||
serializer = RegisterSerializer(user)
|
||||
return Response(serializer.data)
|
||||
return Response(serializer.data)
|
||||
|
||||
class CustomTokenObtainPairView(TokenObtainPairView):
|
||||
serializer_class = CustomTokenObtainPairSerializer
|
Reference in New Issue
Block a user