This commit is contained in:
@ -1,16 +1,17 @@
|
||||
from rest_framework import serializers
|
||||
from .models import CustomUser
|
||||
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
|
||||
from rest_framework.exceptions import ValidationError
|
||||
|
||||
class RegisterSerializer(serializers.ModelSerializer):
|
||||
password = serializers.CharField(write_only=True)
|
||||
|
||||
class Meta:
|
||||
model = CustomUser
|
||||
fields = ('email', 'name', 'password', 'grade', 'desc')
|
||||
fields = ("email", "name", "password", "grade", "desc")
|
||||
|
||||
def create(self, validated_data):
|
||||
password = validated_data.pop('password')
|
||||
password = validated_data.pop("password")
|
||||
user = CustomUser(**validated_data)
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
@ -26,12 +27,28 @@ class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
|
||||
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
|
||||
|
||||
def validate(self, attrs):
|
||||
email = attrs.get("email")
|
||||
password = attrs.get("password")
|
||||
|
||||
user = CustomUser.objects.filter(email=email).first()
|
||||
|
||||
if user is None:
|
||||
raise ValidationError("이메일 또는 비밀번호가 올바르지 않습니다.")
|
||||
if not user.is_active:
|
||||
raise ValidationError("계정이 비활성화되어 있습니다. 관리자에게 문의하세요.")
|
||||
if not user.check_password(password):
|
||||
raise ValidationError("이메일 또는 비밀번호가 올바르지 않습니다.")
|
||||
|
||||
self.user = user # ✅ 수동 설정 필요
|
||||
data = super().validate(attrs)
|
||||
|
||||
data["email"] = user.email
|
||||
data["grade"] = user.grade
|
||||
return data
|
||||
|
Reference in New Issue
Block a user