Spaces:
Sleeping
Sleeping
File size: 1,102 Bytes
113d0af |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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')
|