Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Django Phone Login: Login with OTP

Project description

build-status-image pypi-version

Django Phone Login

Django-phone-login uses django-sendsms to send sms.

Django Phone Login provides phone number login with no additional passwords to remember. It’s a easy way to grow your customer base. Without any hassle.

Installing Django Phone Login

Django Phone Login was built for django.

PyPi, install using PIP:

pip install django-phone-login

If you want to install manually:

git clone git@github.com:wejhink/django-phone-login.git
cd django-phone-login/
pip install -r requirements.txt
python setup.py install

Instructions

INSTALLED_APPS += [
    ...  # Make sure to include the default installed apps here.

    'phone_login',
    'rest_framework',
    'rest_framework.authtoken',
]


REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    )
}



AUTHENTICATION_BACKENDS = [
    'phone_login.backends.phone_backend.PhoneBackend',
    'django.contrib.auth.backends.ModelBackend'
]

# Make sure you also have backend Django Templates and APP_DIRS True, if you want to use default OTP Template.
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'APP_DIRS': True,
        ...
    },
]


# Configure the SENDSMS_BACKEND (for django-sendsms integration)

SENDSMS_BACKEND = 'myapp.mysmsbackend.SmsBackend' #(defaults to 'sendsms.backends.console.SmsBackend')
SENDSMS_FROM_NUMBER = "+XXxxxxxxxxxx"
SENDSMS_ACCOUNT_SID = 'ACXXXXXXXXXXXXXX'
SENDSMS_AUTH_TOKEN = 'xxxxxxxx'

Adding to URLs

Add the Below urls.py

urlpatterns = [
    url(r'^phone_login/', include('phone_login.urls', namespace='phone_login'),),
]

Customizable Fields in Settings.

PHONE_LOGIN_ATTEMPTS = 10
PHONE_LOGIN_OTP_LENGTH = 6
PHONE_LOGIN_OTP_HASH_ALGORITHM = 'sha256'

Flow

  1. User enter the phone_number and sends request to generate secret code.
  2. django-phone-login sends a secret_code as SMS to the phone number.
  3. User sends secret_code to the server to verify.
  4. django-phone-login verifies and send token as response using DRF3.

Why use django-phone-login?

  • Phone number login, no password required.
  • Registration through phone number.
  • Mobile based user authentication.

Project details


Download files

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

Files for django-phone-login, version 1.1.3
Filename, size File type Python version Upload date Hashes
Filename, size django_phone_login-1.1.3-py3-none-any.whl (23.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size django-phone-login-1.1.3.tar.gz (9.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page