Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.conf import settings
- from django.contrib.auth import get_user_model
- #Add settings.py => AUTHENTICATION_BACKENDS = ['your_app.your_app_file.EmailOrUsernameModelBackend']
- class EmailOrUsernameModelBackend(object):
- """
- This is a ModelBacked that allows authentication with either a username or an email address.
- """
- def authenticate(self, username=None, password=None):
- if '@' in username:
- kwargs = {'email': username}
- else:
- kwargs = {'username': username}
- try:
- user = get_user_model().objects.get(**kwargs)
- if user.check_password(password):
- return user
- except User.DoesNotExist:
- return None
- def get_user(self, username):
- try:
- return get_user_model().objects.get(pk=username)
- except get_user_model().DoesNotExist:
- return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement