from rest_framework import serializers from django.contrib.auth import get_user_model from rest_framework_simplejwt.serializers import TokenObtainPairSerializer User = get_user_model() class CustomTokenObtainPairSerializer(TokenObtainPairSerializer): """Custom JWT token serializer that includes user data.""" @classmethod def get_token(cls, user): token = super().get_token(user) # Add custom claims token['email'] = user.email token['username'] = user.username return token def validate(self, attrs): data = super().validate(attrs) # Add user data to response data['user'] = { 'id': self.user.id, 'email': self.user.email, 'username': self.user.username, 'first_name': self.user.first_name, 'last_name': self.user.last_name, } return data