# up login serializer

This commit is contained in:
xianfuxing 2018-07-25 00:00:41 +08:00
parent 07fe6aa162
commit 9d66545550
1 changed files with 7 additions and 2 deletions

View File

@ -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