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 |
---|---|---|---|
4.1 | 0.53.0 | 1.2 | 3.8, 3.9, 3.10, 3.11 |
4.2 | 0.53.0 | 1.2 | 3.8, 3.9, 3.10, 3.11 |
django-allauth-2fa was initially created by Víðir Valberg Guðmundsson (@valberg), was maintained by Percipient Networks for many years, and is now maintained by Valohai. 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 support@percipientnetworks.com 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.
Start by cloning the project with:
git clone https://github.com/valohai/django-allauth-2fa.git
The project uses hatch for building and package management. If you don't have hatch installed, you can do so by running:
pip install hatch
Setup you virtual environment with hatch:
hatch env create
Tests can be run using pytest
hatch run pytest
The test project can also be used as a minimal example using the following:
hatch run python manage.py migrate
hatch run python manage.py runserver