lambda_hf_v2 / authentication /serializers.py
FerdinandPyCode's picture
track files 2
113d0af
raw
history blame
1.1 kB
from djoser.serializers import UserCreateSerializer
from django.contrib.auth import get_user_model
from rest_framework_simplejwt.tokens import RefreshToken, TokenError
from rest_framework import serializers
from .utils.account_send_email import send_email_to_user
from .utils.generate_password import random_pass_generator
User = get_user_model()
class UserSerializer(UserCreateSerializer):
class Meta(UserCreateSerializer.Meta):
model = User
fields = ('id', 'email', 'first_name','last_name', 'image', 'is_active', 'password',)
extra_kwargs = {'password': {'write_only': True}, 'is_active': {'read_only': True}}
depth = 1
class LogoutSerializer(serializers.Serializer):
refresh = serializers.CharField()
default_error_message = {
'bad_token': ('Token is expired or invalid')
}
def validate(self, attrs):
self.refresh_token = attrs['refresh']
return attrs
def save(self, **kwargs):
try:
RefreshToken(self.refresh_token).blacklist()
except TokenError:
self.fail('bad_token')