How to get real password from Django rest framework ( JWT token ). For UserListView

673 Views Asked by At

I'm new to this topic, I want to implement the output of users and their real passwords for admin access. At the moment I have this code, it displays encrypted passwords. How can I make the password that the user entered during registration appear in the field? Thank you in advance.

class UserListView(generics.ListAPIView):
queryset = models.User.objects.all()
serializer_class = serializers.UsersListSerializer

class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(('email address'), unique=True)
first_name = models.CharField(('first name'), max_length=30, blank=True)
last_name = models.CharField(('last name'), max_length=30, blank=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)

objects = UserManager()

USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['first_name', 'last_name']

def __str__(self):
    return str(self.email)

def save(self, *args, **kwargs):
    super(User, self).save(*args, **kwargs)
    return self

@property
def token(self):
    return self._generate_jwt_token()

def _generate_jwt_token(self):
    dt = datetime.now() + timedelta(days=60)

    token = jwt.encode({
        'id': self.pk,
        'exp': dt.utcfromtimestamp(dt.timestamp())
    }, settings.SECRET_KEY, algorithm='HS256')

    return token.decode('utf-8')
class UserManager(BaseUserManager):

def _create_user(self, first_name, last_name, email, password=None, is_active=True, is_staff=False, is_superuser=False):
    if not first_name:
        raise ValueError('First name should be set')
    if not last_name:
        raise ValueError('Last name should be set')
    if not email:
        raise ValueError('Email should be set')

    user = self.model(
        email=self.normalize_email(email),
        first_name=first_name,
        last_name=last_name,
        is_active=is_active,
        is_staff=is_staff,
        is_superuser=is_superuser
    )
    user.set_password(password)
    user.save(using=self._db)

    return user

def create_user(self, first_name, last_name, email, password=None):
    user = self._create_user(first_name, last_name, email, password=password, is_staff=True)
    return user

def create_superuser(self, first_name, last_name, email, password=None):
    user = self._create_user(first_name, last_name, email, password=password, is_staff=True, is_superuser=True)
    return user

Now I have this

[
{
    "email": "[email protected]",
    "password": "pbkdf2_sha256$216000$2HREtqWfeAGm$VKHOyaoXR9x+xIBrBuoaDEjnJx/6V+bNkw/Y0iSJhA0=",
    "first_name": "Kdhsdh",
    "last_name": "JKgfjgps"
},
{
    "email": "[email protected]",
    "password": "pbkdf2_sha256$216000$A0ms9j2nh3hJ$q9BS8LuwxiOdPpO36QzJHMCPnBMYfDnci51omfyS7oo=",
    "first_name": "Sebek",
    "last_name": "Bebek"
}
]

I want to have this

[
{
    "email": "[email protected]",
    "password": "12345678",
    "first_name": "Kdhsdh",
    "last_name": "JKgfjgps"
},
{
    "email": "[email protected]",
    "password": "12345678",
    "first_name": "Sebek",
    "last_name": "Bebek"
}
]
0

There are 0 best solutions below