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') | |