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)
| File | Size | Uploaded | |
|---|---|---|---|
| django-phone-auth-0.2.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|