Для того, чтобы сделать аутентификацию без пароля:
В ваших настройках.py:
AUTHENTICATION_BACKENDS = [
# auth_backend.py implementing Class YourAuth inside yourapp folder
'yourapp.auth_backend.YourAuth',
# Default authentication of Django
'django.contrib.auth.backends.ModelBackend',
]
В вашем auth_backend.py:
# Если у вас есть пользовательская модель для вашего приложения, импортируйте ее из .models CustomUser
from .models import User
from django.conf import settings
# requires to define two functions authenticate and get_user
class YourAuth:
def authenticate(self, request, username=None):
try:
user = User.objects.get(username=username)
return user
except User.DoesNotExist:
return None
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
В ваших представлениях для пользовательского запроса входа в систему:
# Your Logic to login user
userName = authenticate(request, username=uid)
login(request, userName)
Для справки см. https://docs.djangoproject.com/en/2.1/topics/auth/customizing/