django-allauth-2fa adds two-factor authentication to django-allauth. django-allauth is a set of Django applications which help with authentication, registration, and other account management tasks.
- Source code
- http://github.com/percipient/django-allauth-2fa
- Documentation
- https://django-allauth-2fa.readthedocs.io/
- Adds two-factor authentication views and workflow to django-allauth.
- Supports Authenticator apps via a QR code when enabling 2FA.
- Supports single-use back-up codes.
django-allauth-2fa attempts to maintain compatibility with supported versions of Django, django-allauth, and django-otp.
Current versions supported together is:
Django | django-allauth | django-otp | Python |
---|---|---|---|
2.2 | 0.41.0 | 0.5, 0.6, 0.7 | 3.6, 3.7, 3.8, 3.9 |
3.0 | 0.41.0 | 0.7, 0.8 | 3.6, 3.7, 3.8, 3.9 |
3.1 | 0.41.0 | 0.9, 1.0, 1.1 | 3.6, 3.7, 3.8, 3.9 |
3.2 | 0.41.0 | 0.9, 1.0, 1.1 | 3.6, 3.7, 3.8, 3.9, 3.10 |
4.0b1 | 0.41.0 | 0.9, 1.0, 1.1 | 3.8, 3.9, 3.10 |
django-allauth-2fa was initially created by Víðir Valberg Guðmundsson (@valberg), and is currently maintained by Percipient Networks. Please feel free to contribute if you find django-allauth-2fa useful!
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- If you feel uncomfortable or uncertain about an issue or your changes, feel free to email [email protected] and we will happily help you.
- Fork the repository on GitHub to start making your changes to the main branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Send a pull request and bug the maintainer until it gets merged and published.
Tests can be run using [pytest](https://docs.pytest.org/en/6.2.x/).
pip install -r requirements-test.txt
py.test
The test project can also be used as a minimal example using the following:
# Migrate the SQLite database first.
DJANGO_SETTINGS_MODULE=tests.run_settings python manage.py migrate
# Run the server with debug.
DJANGO_SETTINGS_MODULE=tests.run_settings python manage.py runserver_plus
# Run the shell.
DJANGO_SETTINGS_MODULE=tests.run_settings python manage.py shell_plus