diff --git a/apps/accounts/api/serializers.py b/apps/accounts/api/serializers.py index 5ccb92e..0c137e6 100644 --- a/apps/accounts/api/serializers.py +++ b/apps/accounts/api/serializers.py @@ -1,8 +1,12 @@ from rest_framework import serializers from django.contrib.auth import get_user_model from django.db.models import Q +from rest_framework_jwt.settings import api_settings + User = get_user_model() +jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER +jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER class UserDetailSerializer(serializers.ModelSerializer): @@ -36,7 +40,6 @@ class UserDetailSerializer(serializers.ModelSerializer): return obj.get_image_url() - class UserLoginSerializer(serializers.ModelSerializer): token = serializers.CharField(allow_blank=True, read_only=True) username = serializers.CharField(required=False, allow_blank=True) @@ -82,8 +85,10 @@ class UserLoginSerializer(serializers.ModelSerializer): raise serializers.ValidationError('This username/email is not valid.') if user_obj: + payload = jwt_payload_handler(user_obj) + token = jwt_encode_handler(payload) if not user_obj.check_password(password): raise serializers.ValidationError('Incorrect credentials pls try again.') - data['token'] = 'SOME RANDOM TOKEN' + data['token'] = token return data