Spaces:
Sleeping
Sleeping
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') | |