django-allauth - стандартный пакет для регистрации, подтверждения email, сброса пароля, социального входа и MFA в Django 5.x. В уроке подключим его к проекту шаг за шагом.
Зачем allauth вместо своей аутентификации
django.contrib.auth даёт пользователей, сессии, login() и права. Всё вокруг - формы регистрации, письма подтверждения, «забыл пароль», вход через Google или GitHub - придётся писать и защищать самим. allauth упаковывает эти сценарии с проверенными настройками.
| Что нужно | django.contrib.auth | django-allauth |
|---|---|---|
| Вход / выход | да | да |
| Форма регистрации | нет | да |
| Подтверждение email | нет | да |
| Сброс пароля | только представления | весь сценарий |
| Социальный вход | нет | десятки провайдеров |
| MFA | нет | allauth.mfa |
💡 allauth работает и со стандартным
User, и с собственной моделью (см. своя модель пользователя).
Установка
Установите пакет, добавьте приложения, middleware и backend, подключите URL. В TEMPLATES должен быть процессор django.template.context_processors.request.
pip install django-allauth# 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 = '/'