django-allauth-2fa
Adds two factor authentication to django-allauth
Decision gist · record as of 2026-08-14
Yes, if you are locked on django-allauth < 0.58.0 and need 2FA now. Low install friction, active maintenance, and no known vulnerabilities. However, strongly prefer upgrading to django-allauth 0.58.0+ and using its built-in MFA support if your project timeline allows—this package is a temporary bridge, not a long-term solution.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires django-allauth < 0.58.0; incompatible with newer versions that have built-in MFA.
- Requires Django 4.1 or 4.2 and Python 3.8–3.11 per documented compatibility matrix.
- Low install friction with a pure Python wheel.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache Software License (permissive). No restrictions on commercial or private use.
last release 2025-01-16 (575 days) · last repo commit 2026-07-06 · 218 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 91,283 downloads/mo, #13,529 on PyPI
Alternatives
Verify before relying
pip install django-allauth-2fa
from django_allauth_2fa.views import setup_2fa
# Add to Django urlpatterns and configure django-allauth, django-otp, and qrcode in settings- Whether the package works with Python versions beyond 3.11 or Django versions beyond 4.2.
- Current maintenance cadence and response time for bug reports or security issues.
- Whether the QR code generation and backup code workflows are production-ready for all use cases.
What it is and what it does
django-allauth-2fa is a Django application that backports two-factor authentication to older versions of django-allauth (before 0.58.0). It integrates with django-allauth's authentication and account management system to add a second verification layer, supporting both time-based authenticator apps (displayed via QR code) and single-use backup codes for account recovery. The package depends on django-allauth, django-otp for OTP handling, Django itself, and qrcode for QR code generation.
The package is explicitly intended as a stopgap for projects stuck on older django-allauth versions. If you are using django-allauth 0.56.0 or newer, the project's maintainers recommend using django-allauth's built-in MFA support instead. The package maintains compatibility with Django 4.1–4.2 and Python 3.8–3.11, and is actively maintained but in a limited capacity given its deprecated status for newer allauth versions.
Use it for
- Add 2FA to a Django project using django-allauth < 0.58.0 without upgrading allauth.
- Provide users with authenticator app support (TOTP) via QR code enrollment.
- Generate and manage single-use backup codes for account recovery in case of lost authenticator.
- Extend django-allauth's authentication workflow with a second verification factor for security-sensitive applications.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are locked on django-allauth < 0.58.0 and need 2FA now.
Low install friction, active maintenance, and no known vulnerabilities. However, strongly prefer upgrading to django-allauth 0.58.0+ and using its built-in MFA support if your project timeline allows—this package is a temporary bridge, not a long-term solution.
Install
django-allauth-2fa on PyPI
Before you install
Low install friction with a pure Python wheel. Actively maintained as of July 2026 with 218 repository stars. Note: the package is explicitly deprecated for django-allauth versions 0.58.0 and newer, which have built-in MFA support—verify your django-allauth version before installing.
Requires django-allauth < 0.58.0; incompatible with newer versions that have built-in MFA. Requires Django 4.1 or 4.2 and Python 3.8–3.11 per documented compatibility matrix.
License in practice
Licensed under Apache Software License (permissive). No restrictions on commercial or private use.
Quickstart
pip install django-allauth-2fa
from django_allauth_2fa.views import setup_2fa
# Add to Django urlpatterns and configure django-allauth, django-otp, and qrcode in settings
Verify before relying
- Whether the package works with Python versions beyond 3.11 or Django versions beyond 4.2.
- Current maintenance cadence and response time for bug reports or security issues.
- Whether the QR code generation and backup code workflows are production-ready for all use cases.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesdjango-allauthdjango-otpdjangoqrcode |
| Maintenance | Actively maintained 575 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 91,283 / month, #13,529 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.1Framework :: Django :: 4.2Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: InternetTopic :: Software Development :: Libraries :: Python Modules |
Evidence: django_allauth_2fa-0.12.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django 2fa setup”
- django-allauth-2faAdds two-factor authentication to django-allauth versions older than…
- django-two-factor-authAdds complete two-factor authentication to Django projects,…
- django-otpAdds one-time password (OTP) support to Django applications, enabling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also django-otp · django-two-factor-auth · dj-rest-auth · django-allauth · google-reauth · authy · django-invitations · duo-client · PyOTP · pyu2f