django-allauth - стандартный пакет для регистрации, подтверждения email, сброса пароля, социального входа и MFA в Django 5.x. В уроке подключим его к проекту шаг за шагом.

Зачем allauth вместо своей аутентификации

django.contrib.auth даёт пользователей, сессии, login() и права. Всё вокруг - формы регистрации, письма подтверждения, «забыл пароль», вход через Google или GitHub - придётся писать и защищать самим. allauth упаковывает эти сценарии с проверенными настройками.

Что нужноdjango.contrib.authdjango-allauth
Вход / выходдада
Форма регистрациинетда
Подтверждение emailнетда
Сброс паролятолько представлениявесь сценарий
Социальный входнетдесятки провайдеров
MFAнетallauth.mfa

💡 allauth работает и со стандартным User, и с собственной моделью (см. своя модель пользователя).

Установка

Установите пакет, добавьте приложения, middleware и backend, подключите URL. В TEMPLATES должен быть процессор django.template.context_processors.request.

bash
pip install django-allauth
python
# settings.py
INSTALLED_APPS = [
    # ... django.contrib.* ...
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.github',
]
SITE_ID = 1

MIDDLEWARE = [
    # ... SessionMiddleware, AuthenticationMiddleware ...
    'allauth.account.middleware.AccountMiddleware',
]

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
]
LOGIN_REDIRECT_URL = '/'