All checks were successful
Build And Test / build-and-push (push) Successful in 2m49s
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
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)
|
|
|
|
class Meta:
|
|
model = CustomUser
|
|
fields = ('email', 'name', 'password', 'grade', 'desc')
|
|
|
|
def create(self, validated_data):
|
|
password = validated_data.pop('password')
|
|
user = CustomUser(**validated_data)
|
|
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 # 선택적으로 추가 가능
|
|
|
|
# Kong JWT 플러그인용 issuer 정보 추가
|
|
token["iss"] = "msa-user"
|
|
|
|
return token
|
|
# def validate(self, attrs):
|
|
# data = super().validate(attrs)
|
|
# data['name'] = self.user.name # ✅ 여기에 토큰 응답 추가 정보 삽입
|
|
# return data |