Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 3641

Can login as superuser but not as normal user

$
0
0

i have made a super user and registering other users. but only able to log in as superuser and when i try to login as normal user its shows "Invalid phone number or password".Can someone help me with this

models.py

class CustomUserManager(BaseUserManager):    def create_user(self, phone_number, email=None, name=None, password=None, **extra_fields):        if not phone_number:            raise ValueError('The phone number must be set')        email = self.normalize_email(email) if email else None        user = self.model(phone_number=phone_number, name=name, email=email, **extra_fields)        user.set_password(password)        user.save(using=self._db)        return user    def create_superuser(self, phone_number, email=None, name=None, password=None, **extra_fields):        extra_fields.setdefault('is_staff', True)        extra_fields.setdefault('is_superuser', True)        return self.create_user(phone_number, email, name, password, **extra_fields)class CustomUser(AbstractBaseUser, PermissionsMixin):    phone_number = models.CharField(unique=True, max_length=20)    name = models.CharField(max_length=150, default='')    email = models.EmailField(unique=True, blank=True, null=True)    is_active = models.BooleanField(default=True)    is_superuser=models.BooleanField(default=False)    is_staff = models.BooleanField(default=False)    date_joined = models.DateTimeField(default=timezone.now)    objects = CustomUserManager()    USERNAME_FIELD = 'phone_number'    EMAIL_FIELD = 'email'    def __str__(self):        return self.phone_number

views.py

@api_view(['POST'])def login_api(request):    if request.method == 'POST':        serializer = LoginSerializer(data=request.data)        if serializer.is_valid():            phone_number = serializer.validated_data.get('phone_number')            password = serializer.validated_data.get('password')            user = authenticate(request, phone_number=phone_number, password=password)            if user is not None:                if user.is_active:                    login(request, user)                    return Response({'message': 'Login successful'})                else:                    return Response({'error': 'User account is disabled'}, status=status.HTTP_401_UNAUTHORIZED)            else:                return Response({'error': 'Invalid phone number or password'}, status=status.HTTP_401_UNAUTHORIZED)        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)    return Response({'error': 'Method not allowed'}, status=status.HTTP_405_METHOD_NOT_ALLOWED)

settings.py

AUTH_USER_MODEL='detectapp.CustomUser'

I made a customusermodel to log in with phone number. But not able to resolve the issue.


Viewing all articles
Browse latest Browse all 3641

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>