Skip to main content

django-phone-auth

A Django app to authenticate and register users using phone/email/username. It uses the default User Model.

Installation

pip install django-phone-auth

Add 'phone_auth' in INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    'phone_auth',
    ...
]

Add 'phone_auth.backend.CustomAuthBackend' in AUTHENTICATION_BACKENDS.

AUTHENTICATION_BACKENDS = [
    ...
    # Needed to login by username in Django admin, regardless of `django-phone-auth`
    'django.contrib.auth.backends.ModelBackend',

    # `django-phone-auth` specific authentication methods, such as login by phone/email/username.
    'phone_auth.backend.CustomAuthBackend',
    ...
]

Add 'path('accounts/', include('phone_auth.urls'))' in urls.py

urlpatterns = [
    ...
    path('accounts/', include('phone_auth.urls')),
    ...
]

Now run command -

python manage.py migrate

Usage

On registration page ('/accounts/register/') by default first_name, last_name, email and username is optional. These can be set to required by adding following variables in settings.py

REGISTER_USERNAME_REQUIRED = True
REGISTER_EMAIL_REQUIRED = True
REGISTER_FNAME_REQUIRED = True
REGISTER_LNAME_REQUIRED = True

On login page ('/accounts/login/') by default user can only login with phone. To allow login through username/email/phone add the following in settings.py

LOGIN_METHODS = {'email', 'phone', 'username'}

Note: LOGIN_METHODS can't be empty

Override templates

To override templates, create a folder 'templates' in the base directory (the directory which contains the 'manage.py' file). Now add the path to this folder in settings.py. It will look like this -

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

Now in templates folder, you can create file 'register.html', 'login.html' and templates will get overriden.

Metadata

Release files for django-phone-auth 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-phone-auth 0.2
File Size Uploaded
django-phone-auth-0.2.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-phone-auth 0.2
File Interpreter ABI Platform
django_phone_auth-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 28.4 kB

Release files / django-phone-auth-0.2.tar.gz

Download URL django-phone-auth-0.2.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b91e35efeed886bdff9b28febee8843eb0fd3ccc880ee7d7b86ff1f5b32a0764
BLAKE2b-256 checksum
How to use checksums
140c6efbc9028f7dbd6a63bb9cc617211a448375d5632e41bdaf61d4f8fda9a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/54.1.2 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5

Release files / django_phone_auth-0.2-py3-none-any.whl

Download URL django_phone_auth-0.2-py3-none-any.whl
Size 16.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1b9544d74d06d9c266f5fa74e70b3f542f2e613a6bfe0663b48100b136b519b
BLAKE2b-256 checksum
How to use checksums
4d79acc5a6c0b7a885a8da4af171af17c3dc6cf1c52d3ace870d3f231d3c4a9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/54.1.2 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3

2 release files

This release

0.2 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page