Skip to content

gotlium/django-secure-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

75e1dda · Aug 1, 2017
Jun 4, 2016
Nov 26, 2013
Aug 1, 2017
Jun 7, 2014
Nov 24, 2013
Apr 4, 2016
Apr 4, 2016
Nov 24, 2013
Jun 13, 2014
Jul 9, 2014
Apr 21, 2016
Apr 4, 2016
Apr 4, 2016

Repository files navigation

Django-Secure-Auth

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

About

Secure authentication by TOTP, SMS, Codes & Question. Login protected by IP ranges and with captcha.

Resources

License

Stars

Watchers

Forks

Packages

No packages published