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 hashes)

Uploaded Source

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