Встречается на собеседованиях • сегодня

Работал ли с 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 None
text

Затем нужно добавить бэкенд в `AUTHENTICATION_BACKENDS` в settings.py:
```python
AUTHENTICATION_BACKENDS = [
    'path.to.EmailAuthBackend',
    'django.contrib.auth.backends.ModelBackend',  # сохраняем стандартный
]

Это позволяет гибко настраивать аутентификацию - например, через LDAP, OAuth или другие системы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы