Встречается на собеседованиях • сегодня
Как сделать кастомную авторизацию в Django
Для создания кастомной аутентификации в Django можно использовать AbstractBaseUser или AbstractUser.
- Настройка модели пользователя:
python
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager class CustomUserManager(BaseUserManager): def create_user(self, email, password=None, **extra_fields): if not email: raise ValueError('Email is required') user = self.model(email=self.normalize_email(email), **extra_fields) user.set_password(password) user.save(using=self._db) return user
class CustomUser(AbstractBaseUser):
email = models.EmailField(unique=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
text
USERNAME_FIELD = 'email'
objects = CustomUserManager()text
2. **Обновление `settings.py`**:
```python
AUTH_USER_MODEL = 'myapp.CustomUser'-
Кастомный бэкенд аутентификации (если нужно):
pythonfrom django.contrib.auth.backends import BaseBackend from .models import CustomUser class CustomAuthBackend(BaseBackend): def authenticate(self, request, email=None, password=None): try: user = CustomUser.objects.get(email=email) if user.check_password(password): return user except CustomUser.DoesNotExist: return None -
Добавьте бэкенд в
AUTHENTICATION_BACKENDS:pythonAUTHENTICATION_BACKENDS = ['myapp.backends.CustomAuthBackend']
Также можно переопределить формы (UserCreationForm, UserChangeForm) и использовать их в админке.

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