Django Admin Two-Factor Authentication
Django Admin Two-Factor Authentication, allows you to login django admin with google authenticator.
Why Django Admin Two-Factor Authentication?
- Using google authenticator to login your Django admin.
- Used jquery confirm dialog to get code.
- Simple interface
- Easy integration
How to use it
- Download and install last version of Django Admin Two-Factor Authentication:
$ pip install django-admin-two-factor
# or
$ easy_install django-admin-two-factor
- Add 'admin_two_factor' application to the INSTALLED_APPS setting of your Django project
settings.py
file (note it should be before 'django.contrib.admin'):
INSTALLED_APPS = (
'admin_two_factor.apps.TwoStepVerificationConfig',
'django.contrib.admin',
# ...
)
- Migrate
admin_two_factor
:
$ python manage.py migrate admin_two_factor
$ # or
$ python manage.py syncdb
- Add
ADMIN_TWO_FACTOR_NAME
in yoursettings.py
. This value will be displayed in Google Authenticator.
ADMIN_TWO_FACTOR_NAME = 'PROJECT_NAME'
- Include the Admin Two Factor URL config in
PROJECT_CORE/urls.py
:
# Django version >= 2
urlpatterns = [
path('admin/', admin.site.urls),
path('two_factor/', include(('admin_two_factor.urls', 'admin_two_factor'), namespace='two_factor')),
# ...
]
# Django version = 1
# urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
# url(r'^two_factor/', include(('admin_two_factor.urls', 'admin_two_factor'), namespace='two_factor')),
- Collect static if you are in production environment:
$ python manage.py collectstatic
- Clear your browser cache
Start the app
$ # Set up the database
$ python manage.py makemigrations
$ python manage.py migrate
$
$ # Create the superuser
$ python manage.py createsuperuser
$
$ # Start the application (development mode)
$ python manage.py runserver # default port 8000
- Access the
admin
section in the browser:http://127.0.0.1:8000/
ScreenShoots
- User List: the users who have enabled two-factor auth
- Add New User:
- Scan QRCode and enter the valid code:
- Logout and login again with Google Authenticator: