Skip to main content

Secure authentication by TOTP, SMS, Codes & Question

Project description

Code Health Codacy Python 2.7, 3.4+ Current version on PyPi Downloads from PyPi License

Module which provide secure authentication by TOTP/SMS/Codes/Question. Login protected by IP ranges and with captcha, when login attempt will fail.

Demo installation:

$ sudo apt-get install -y virtualenvwrapper redis-server git python-dev || brew install pyenv-virtualenvwrapper redis git geoip
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh || source /usr/local/bin/virtualenvwrapper.sh
$ mkvirtualenv django-secure-auth
$ workon django-secure-auth
$ git clone --depth 1 https://github.com/gotlium/django-secure-auth.git
$ cd django-secure-auth
$ pip install -r requirements.txt
$ python setup.py develop
$ cd demo
$ pip install -r requirements.txt
$ python manage.py syncdb --noinput
$ python manage.py migrate --noinput
$ python manage.py createsuperuser --username admin --email admin@local.host
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
$ gunzip GeoLiteCity.dat.gz
$ mkdir -p /usr/share/geoip/; mv GeoLiteCity.dat /usr/share/geoip/
$ cd ../

Open settings:

$ vim demo/settings.py

Replace Twilio credentials in AUTH_SMS_BACKEND_AUTH to your demo account settings or change SMS_FORCE to False.

Run Redis server and Celery daemon(or remove ‘djcelery’ from INSTALLED_APPS):

$ make run_redis
$ make run_celery

Run test server:

$ make run_server

Now you can open https://127.0.0.1:8000/accounts/register/ and register new account and setup all available authentication methods.

Note: activation link will be output to console.

Crontab

When you are using TOTP auth method, please update your server time. If your server time is behind from real time, user cannot be authenticated by authenticator app. You can run ntpd clients, or update time on server by cron job:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
MAILTO=root@localhost

# Update time
0 */6 * * * ntpdate ntp.ubuntu.com >& /dev/null

Screenshots

/screenshots/login-confirmation.jpg /screenshots/settings.jpg /screenshots/two-factor-configuration.jpg /screenshots/sms-settings.jpg

Compatibility

  • Python: 2.7

  • Django: 1.4, 1.8, 1.11

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-secure-auth-1.3.3.2.tar.gz (52.3 kB view details)

Uploaded Source

Built Distribution

django_secure_auth-1.3.3.2-py2-none-any.whl (110.1 kB view details)

Uploaded Python 2

File details

Details for the file django-secure-auth-1.3.3.2.tar.gz.

File metadata

File hashes

Hashes for django-secure-auth-1.3.3.2.tar.gz
Algorithm Hash digest
SHA256 41f0532967b9d076ef5914a0833d098044278e7ed8d71bc40cc79cc8899fea6d
MD5 6ccf97808b4def55bf85362a18588eb2
BLAKE2b-256 8835141aec5f306e0e57e35a04b0f0f0045774313e89ee700920dede47a32005

See more details on using hashes here.

File details

Details for the file django_secure_auth-1.3.3.2-py2-none-any.whl.

File metadata

File hashes

Hashes for django_secure_auth-1.3.3.2-py2-none-any.whl
Algorithm Hash digest
SHA256 e492dc9452d54df8427815dc22c7101d62ee995feb3af420f97ab5b350642a60
MD5 8257798a17eb0d14e6e0b3b7e63deef0
BLAKE2b-256 8aa9d1b07662cd9a4743587a0b4bbbc146943d1b3a14fedb34715deadfd41391

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page