Как указано в заголовке, я пытаюсь аутентифицировать пользователя без пароля. Я уже использовал это: django аутентификация без пароля , чтобы решить мою проблему с одним из моих приложений (на Django 2.0), но я хочу сделать то же самое в другом приложении, но это на Django 2.1. Когда я делаю ту же реализацию, моя пользовательская функция аутентификации никогда не вызывается. Таким образом, это не работает.
Текущая настройка в auth_backend.py:
from django.contrib.auth.backends import ModelBackend
from django.contrib.auth.models import User
class PasswordlessAuthBackend(ModelBackend):
"""Log in to Django without providing a password.
"""
def authenticate(self, username=None):
try:
return User.objects.get(username=username)
except User.DoesNotExist:
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
настройка в settings.py:
AUTHENTICATION_BACKENDS = [
# auth_backend.py implementing Class PasswordlessAuthBackend inside yourapp folder
'yourapp.auth_backend.PasswordlessAuthBackend',
# Default authentication of Django
'django.contrib.auth.backends.ModelBackend',
]
но когда я пытаюсь views
user = authenticate(username=user.username)
Он никогда не попадает в мой собственный метод аутентификации. Любая помощь приветствуется!