Advertisement
Guest User

Untitled

a guest
Apr 5th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. from django.conf import settings
  2. from django.contrib.auth import get_user_model
  3.  
  4. #Add settings.py => AUTHENTICATION_BACKENDS = ['your_app.your_app_file.EmailOrUsernameModelBackend']
  5. class EmailOrUsernameModelBackend(object):
  6. """
  7. This is a ModelBacked that allows authentication with either a username or an email address.
  8.  
  9. """
  10. def authenticate(self, username=None, password=None):
  11. if '@' in username:
  12. kwargs = {'email': username}
  13. else:
  14. kwargs = {'username': username}
  15. try:
  16. user = get_user_model().objects.get(**kwargs)
  17. if user.check_password(password):
  18. return user
  19. except User.DoesNotExist:
  20. return None
  21.  
  22. def get_user(self, username):
  23. try:
  24. return get_user_model().objects.get(pk=username)
  25. except get_user_model().DoesNotExist:
  26. return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement