Встречается на собеседованиях • сегодня
Работал ли с Authentication backends
Да, работал. В Django authentication backends позволяют кастомизировать процесс аутентификации. По умолчанию Django использует ModelBackend, но можно создать свой бэкенд, унаследовав от django.contrib.auth.backends.BaseBackend и реализовав методы authenticate() и get_user().
Пример кастомного бэкенда для аутентификации по email:
python
from django.contrib.auth.backends import BaseBackend
from django.contrib.auth import get_user_model
class EmailAuthBackend(BaseBackend):
def authenticate(self, request, username=None, password=None):
User = get_user_model()
try:
user = User.objects.get(email=username)
if user.check_password(password):
return user
except User.DoesNotExist:
return None
text
def get_user(self, user_id):
User = get_user_model()
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return Nonetext
Затем нужно добавить бэкенд в `AUTHENTICATION_BACKENDS` в settings.py:
```python
AUTHENTICATION_BACKENDS = [
'path.to.EmailAuthBackend',
'django.contrib.auth.backends.ModelBackend', # сохраняем стандартный
]Это позволяет гибко настраивать аутентификацию - например, через LDAP, OAuth или другие системы.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы