I have a custom user model and have created a custom authentication
backend. I am using django rest framework JWT
<http://getblimp.github.io/django-rest-framework-jwt/#extending-jsonwebtokenauthentication>
for token authentication.

User model:

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(
        unique=True,
        max_length=254,
    )
    first_name = models.CharField(max_length=15)
    last_name = models.CharField(max_length=15)
    mobile = models.IntegerField(unique=True)
    date_joined = models.DateTimeField(default=timezone.now)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)
    objects = UserManager()
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['first_name', 'last_name', 'mobile']

Auth backend:

class EmailOrMobileAuthBackend(object):
    def authenticate(self, username=None, password=None):
        try:
            user = get_user_model().objects.get(email=username)
            if user.check_password(password):
                return user
        except User.DoesNotExist:
            if username.isdigit():
                try:
                    user = get_user_model().objects.get(mobile=username)
                    if user.check_password(password):
                        return user
                except User.DoesNotExist:
                    return None
            else:
                return None

    def get_user(self, user_id):
        try:
            return get_user_model().objects.get(pk=user_id)
        except User.DoesNotExist:
            return None
And have added in the settings.py:

AUTHENTICATION_BACKENDS =
('accounts.email_mobile_auth_backend.EmailOrMobileAuthBackend',)

While to log in to django admin site, both the email and mobile number
works fine in authenticating the user. However, when I try get the token
for the user using django rest framework JWT
<http://getblimp.github.io/django-rest-framework-jwt/#usage>, I get an
error:

curl -X POST -d "[email protected]&password=123123"
http://localhost/api-token-auth/

"non_field_errors": [
    "Unable to log in with provided credentials."
  ]

What am I missing? Why is it that its working while loggin to the django
admin site, but get error when getting token with django rest framework jwt?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2B4-nGqs8vvev5Y13Q2q1rtoL%3DHzUOhsfOkwV_aSOtS9jinXYw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to