Skip to main content

Django Phone Login: Login with OTP (fix version)

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'
PHONE_LOGIN_DEBUG = True  # will include otp in generate response, default is False.

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.

Source Distribution

django-phone-login-fix-version-0.0.9.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file django-phone-login-fix-version-0.0.9.tar.gz.

File metadata

File hashes

Hashes for django-phone-login-fix-version-0.0.9.tar.gz
Algorithm Hash digest
SHA256 4da52b7b4790c5f2b4ce7fbad1a88c78c2e170a494ce2b53538ab7b09219d45b
MD5 cebf5e5e5bb27bfc821a5cc2095de80f
BLAKE2b-256 b5e7cf55eb705259f52f634f53d52fcf7de5587c33aeb72ac9ab782f9137dc75

See more details on using hashes here.

Supported by

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